设计一个双向起泡排序算法,即在排序过程中交替改变扫描方向。

admin2010-04-24  5

问题 设计一个双向起泡排序算法,即在排序过程中交替改变扫描方向。

选项

答案可通过设置一个标志位进行区分的方式来进行交替扫描,算法描述如下: Alterbubblesort(r) /*交替扫描法起泡排序*/ Reetype R[]; {int i,j,temp,flag; /*设置扫描标志flag*/ flag=True; i=0; while(flag) /*开始扫描*/ { flag=False; for(j=n=i,j<i,j--) {if(R[j],key<R[j-1],key) {flag=True; temp=R[j]; R[j]=R[j-1]; R[j-1]=temp; } } for(j=l;j<n-1;j++) {if(R[j].key>R[j+1].key) {flag=True; temp=R[j]; R[j]=R[i+1]; R[j-1]=temp; } } i++; /*往右扫描*/ } } /*AIterbubblesort*/

解析
转载请注明原文地址:https://kaotiyun.com/show/8gAx777K
本试题收录于: 数据结构题库理工类分类
0

最新回复(0)