1. 程式人生 > >氣泡排序(時間複雜度分析)

氣泡排序(時間複雜度分析)

氣泡排序:

public static void bubbleSort(int[] arr) {
        if(arr == null || arr.length < 2) {
            return;
        }
        for(int e = arr.length-1; e > 0; e--) {
            for(int i = 0; i < e; i++) {
                if(arr[i] > arr[i+1]) {
                    swap(arr, i, i+1
); } } } }

氣泡排序一共要進行(n-1)次迴圈,每一次迴圈都要進行當前n-1次比較
所以一共的比較次數是:
(n-1) + (n-2) + (n-3) + … + 1 = n*(n-1)/2;
所以氣泡排序的時間複雜度是 O(n2)