冒泡排序

Posted on 2018-12-28 17:01  金色的省略号  阅读(190)  评论(0编辑  收藏  举报

  冒泡排序法(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 }