费话不多说直接上代码,一头雾水:
设待排序的键值为
45 38 66 90 88 10 25 45
void BubbleSort(List R ,int n)
{
int i,j temp,endsort;
for(i=1;i<=n-1;i++){
endsort=0;
for(j=1;j
if(R[j].key>R[j+1].key){ //若逆序则交换记录
temp=R[j];
R[j]=R[j];
R[j+1]=R[j+1];
endsort=1;
}
}
if(endsort==0) break;
}
}
该算法的时间复杂度为O(n*n),冒泡排序是稳定的排序方法。
如何解题分解:
第一行为初始键值序列,第二行起依次为各趟起泡的结果,图中非加粗的键值是当前待排序的无序序列。
初键值 45 38 66 90 88 10 25 45
第一趟 38 45 66 88 10 25 45 90
第二趟 38 45 66 10 25 45 88 90
第三趟 38 45 10 25 45 66 88 90
第四趟 38 10 25 45 45 66 88 90
第五趟 10 25 38 45 45 66 88 90
第六趟 10 25 38 45 45 66 88 90
第七趟 10 25 38 45 45 66 88 90
【冒泡排序过程示意图】
为啥叫冒泡排序:该方法的排序过程与气泡从水中往上冒的情况类似,所以称为冒泡排序。
手指不停敲打手机键盘,这不是一般人能手写的代码。

人生总是充满着不确定,却又舍不得放下拥有的。努力握紧拥有的,伸手向未来寻求更好的生活,学会冒险与突破,接受不断打击,跌倒重新爬起来。