应用题
20.冒泡排序方法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)。请给出上浮和下沉过程交替的冒泡排序算法。
【正确答案】void BubbleSort2(int a[],int n){ //相邻两趟向相反方向起泡的冒泡排序算法
int change=1;low=0;high=n—1; //冒泡的上下界
while(low<high&&change){
change=0: //交换标志
for(i.10w;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]Ha[i一1];change=1;}
low++: //修改下界
}
}
【答案解析】