码迷,mamicode.com
首页 > 编程语言 > 详细

算法-冒泡法

时间:2015-04-27 00:20:27      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

算法思想:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

例如:从大到小排序时候,对全部数从左到右对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。

 1 int temp[10]= {21,26,74,96,34,72,3,60,46,53};
 2 void bubbleSort(int a[], int n){  
 3     int tmp = 0;
 4     int i,j,k;
 5     for(i =0 ; i< n-1; i++) {  
 6         for(j = 0; j < n-i-1; j++) {  
 7             if(a[j] > a[j+1])  
 8             {  
 9                 tmp = a[j] ; a[j] = a[j+1] ;  a[j+1] = tmp;  
10             }  
11         } 
12         printf("\t\n NO.%d :" , i+1);
13         for(k=0;k<n;k++){
14           printf(" %d ", a[k]);
15         }
16     }  
17 }

运行结果如下:

技术分享

 

总结:N个数进行冒泡排序需要N-1趟循环,第k次循环需要N-k次比较。

      算法的时间复杂度n-1 + n-2 + ... + 2 + 1 = n(n-1)/2,省略小值,时间复杂度为O(N2)。

算法-冒泡法

标签:

原文地址:http://www.cnblogs.com/pingwen/p/4458565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!