排序一: 冒泡排序

•算法

  相邻元素两两比较,前者大于后者,彼此交换

  从第一对到最后一对,最大的元素沉降到最后

  针对未排序部分,重复以上步骤,沉降次大值

  每次扫描越来越少的元素,直至不再发生交换

•评价

  平均时间复杂度:O(N2)

  稳定排序

 1 // 冒泡排序
 2 void bubble_sort(int *data, int size)
 3 {
 4     int i = 0;
 5     int j = 0;
 6     for(i=0; i<size-1; i++)//趟数
 7     {
 8         int ordered = 1;
 9         for(j=0; j<size-1-i; j++)
10         {
11             if(data[j+1] < data[j])
12             {
13                 int swap = data[j];
14                 data[j] = data[j+1];
15                 data[j+1] = swap;
16                 ordered = 0;
17             }
18         }
19         if(ordered)
20         {
21             break;
22         }
23     }
24     
25 }

 

posted on 2016-08-14 23:54  jiangsion  阅读(220)  评论(0编辑  收藏  举报

导航