•算法
相邻元素两两比较,前者大于后者,彼此交换
从第一对到最后一对,最大的元素沉降到最后
针对未排序部分,重复以上步骤,沉降次大值
每次扫描越来越少的元素,直至不再发生交换
•评价
平均时间复杂度: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 }