
答案
标准答案:
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 } //算法结束