冒泡排序

2018-09-11  本文已影响15人  一代骄马

一 冒泡排序

冒泡排序

/**

* 【冒泡排序】:相邻元素两两比较,比较完一趟,最值出现在末尾

* 第1趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第n个元素位置

* 第2趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第n-1个元素位置

* ……  ……

* 第n-1趟:依次比较相邻的两个数,不断交换(小数放前,大数放后)逐个推进,最值最后出现在第2个元素位置

*/

void bublleSort(int *arr, int length) {

    for(int i = 0; i < length - 1; i++) { //趟数

        for(int j = 0; j < length - i - 1; j++) { //比较次数

            if(arr[j] > arr[j+1]) {

                int temp = arr[j];

                arr[j] = arr[j+1];

                arr[j+1] = temp;

            }

        }

    }

}

图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) - dreamcatcher-cx - 博客园

需要比较 n*(n-1)/2 次。因此时间复杂度是O(n^2)。

上一篇下一篇

猜你喜欢

热点阅读