首页 > 代码库 > 排序算法:冒泡法

排序算法:冒泡法

冒泡排序:n个数,经过n-1趟子排序完成的,第 i 趟子排序从第1个数至第 n-i 个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。

1.比较相邻两个数,如果前面数据大于(或者小于)后面的数据,两个数据交换。

2.每次遍历之后,最大(或者最小)的数“沉”到最后

3.N个数进行(n-1)回排序,第i回进行(n-i)次比较

4, 排序效率低,用于小规模排序

 

原始:

01234567
610490527783

 

 

第0次排序后:

01234567
641052778390

 

 

。。。。。。

 

实现代码:

 

 1 /************************************************************************************** 2  *  Description: 3  *   Input Args: 4  *  Output Args: 5  * Return Value: 6  *************************************************************************************/ 7 int bubble_sort (int a[]) 8 { 9     int i, j;10     int temp;11 12     for(i= 0; i<MAX-1; i++)13         for(j=1; j<MAX-i; j++)14             if (a[j-1] < a[j]) //大到小15             {16                 temp   = a[j-1];17                 a[j-1] = a[j];18                 a[j]   = temp;19             }20 21     return 0;22 } /* ----- End of bubble_sort()  ----- */

 

排序算法:冒泡法