排序-冒泡排序

来源:互联网 发布:如何更改淘宝店铺名 编辑:程序博客网 时间:2024/06/01 08:36

冒泡,顾名思义大泡上浮或小泡下沉,冒泡排序是一种反复交换相邻元素值的排序算法,每一轮交换出最大或最小值到正确的位置,n - 1轮交换结束后序列排序完成。最坏时间复杂度为O(n2)。

算法实现见BubleSort.cpp:

 void swap(int &a, int &b)  {     int tmp = a;     a = b;     b = tmp; } void bubleSort(int array[], int n) {     char flag = 0;     int i, j;     for (i = 0; i < n - 1; ++i) {         for (j = n - 1; j > i; --j) {             if (array[j] < array[j - 1]) {                 swap(array[j], array[j - 1]);                 //设置哨兵位,序列已排好序时跳出最外层for循环                 flag = 1;             }            } //end of for (j = n - 1; j >= i + 1; j--)         if (!flag)             break;     } //end of for (i = 0; i < n - 1; i++) }
0 0
原创粉丝点击