冒泡排序是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡般逐渐往上“漂浮”(左移),或者使关键字大的记录如石块一样逐渐“坠落”(右移)
案例:
对关键字序列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=n
Do
{
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));
}