搜题
问题   更新时间2023/4/3 12:59:00

22. (问答题) 试编写一个双向起泡的排序算法.即在排序过程中交替改变扫描方向。(本题15.0分)

标准答案: void TwoWayBubbleSort( rectype r[n+1]; int n) // 对r[1..n]进行双向冒泡排序。即相邻两遍向两个相反方向起泡 { int i=1, exchange=1; // 设标记 while (exchange) { exchange=0; // 假定本趟无交换 for (j=n-i+1 j>=i+1;j--) // 向前起泡,一趟有一最小冒出 if (r[j]r[j-1]; exchange=1;} // 有交换 for (j= i+1;j>=n-I;j++) // 向后起泡,一趟有一最大沉底 if (r[j]>r[j+1]) {r[j]>r[j+1]; exchange=1;} // 有交换 i++; } // end of WHILE exchange } //算法结束
王老师:19139051760(拨打)