排序之冒泡排序

 1 //冒泡排序
 2 /*******************算法描述**********************
 3 1、遍历无序序列,依次取这个数和它的下一个数进行比较,如果这个数比下数大,则交换
 4 2、循环1,直到length次数(我们称之为趟数)为止,
 5 补充1:如果其中任何一趟,没有发生交换,则表示排序成功
 6 补充2:其中每一趟,因为最大值已经放在最后了,所以从效率上来说,应该比较次数少一次
 7 *************************************************/
 8 void sortByBubble(int array[],int length)
 9 {
10     int iTemp;
11     //2、循环1,直到length次数(我们称之为趟数)为止,
12     for(int i=0;i<length;i++)
13     {
14         //1、遍历无序序列,依次取这个数和它的下一个数进行比较,如果这个数比下数大,则交换
15         for(int j=0;j<length-1-j;j++)
16         {
17             //取这个数和它的下一个数进行比较
18             if(array[j]> array[j+1])//如果这个数比下数大
19             {
20                 iTemp = array[j];
21                 array[j] = array[j+1];
22                 array[j+1] = iTemp;
23             }
24         }
25     }
26 }
27 
28 void print(int a[],int length)
29 {
30     for(int i=0;i<length;i++)
31     {
32         printf("%d ",a[i]);
33     }
34     printf("\n");
35 }
36 
37 int main()
38 {
39     int a[10] = {7,2,8,3,9,10,15,11,20,17};
40     printf("冒泡排序:\n");
41     sortByBubble(a,sizeof(a)/sizeof(int));
42     print(a,sizeof(a)/sizeof(int));
43     return 0;
44 }
原文地址:https://www.cnblogs.com/jiese/p/2564509.html