应用题 12.冒泡排序方法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)。请给出上浮和下沉过程交替的冒泡排序算法。
【正确答案】void BubbleSort2(int a[],int n){ //相邻两趟向相反方向起泡的冒泡排序算法
int change=1:low=0;high=n一1; //冒泡的上下界
while(low<high&&change){
change=0: //交换标志
for(i=low;i<high;i++) //从上向下起泡
if(a[i]>a[i+1]){a[i]←→a[i+1];change=1;} //有交换,修改标志change
high--: //修改上界
for(i=high;i>low;i一一) //从下向上起泡
if(a[i]<a[i+1]{a[i]←→a[i一1];change=1;}
low++; //修改下界
}
}
提示:此题考查的知识点是双向冒泡算法。题目中“向上移”理解为向序列的右端,而“向下移”按向序列的左端来处理。
【答案解析】