冒泡排序法(bubble sort)的基本思想是,通过相邻两个记录 之间的比较和交换,使关键码较小的记录逐渐从底部移向顶 部(上升),关键码较大的记录逐渐从顶部移向底部(沉 底),冒泡由此得名;冒泡排序属于交换类排序
排序算法是稳定的,数组存储或链表存储都可以冒泡排序,冒泡排序最好情况的时间复杂度O(N),最坏情况的时间复杂度是O(N2),对于N个数进行冒泡排序,最坏情况下需要进行的比较次数为N*(N-1)/2;
1 /*冒泡排序--递归*/ 2 void BubbleSort(int *a,int left, int right) 3 { 4 if(left<right){ 5 int j,t; 6 for(j=right; left<j; j--){ 7 if(a[j-1]>a[j])/*相邻比较*/ 8 t=a[j],a[j]=a[j-1],a[j-1]=t; 9 } 10 BubbleSort(a,j+1,right);/*递归*/ 11 } 12 }