冒泡排序是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡般逐渐往上“漂浮”(左移),或者使关键字大的记录如石块一样逐渐“坠落”(右移)
案例:
对关键字序列46,38,65,97,76,13,27,49进行冒泡法排序,请详细列举各步骤排序之后的关键字序列,并编写其相关算法C语言代码。
解:
各步骤关键字序列:
序列初始序列为 {46、38、65、97、76、13、27、49}
第一趟:{46、38、65、76、13、27、49}、97
第二趟:{46、38、65、13、27、49}、76、97
第三趟:{46、38、13、27、49}、65、76、97
第四趟:{46、38、13、27}、49、65、76、97
第五趟:{38、13、27}、46、49、65、76、97
第六趟:13、27、38、46、49、65、76、97
算法C语言算法:
Void BubbleSort(List &r,int n){k=nDo{all=′T′;for(m=1;m<=k-1;m++){i=m+1;if(r[m].key>r[i].key){max=r[m];r[m]=r[i];r[i]=max;all=′F′;}}k--; }while((all!= ′T′) && (k!=1));}