数据结构和算法程序员

冒泡排序

2017-09-02  本文已影响30人  小鱼嘻嘻

冒泡排序算法思想

冒泡排序的实现为:两两比较,前者大于后者交换,将最大的放入最后,然后重复这个步骤直到没有任何一对数字需要比较。

冒泡排序算法实现

 public static void main(String[] args) {
        int[] arr = {3,3,3,3,3,3,4, 3};

        int[] insertSort = bubbleSort(arr);
        for (int i : insertSort) {
            System.out.print(i + "  ");
        }

    }

    /**
     * 冒泡排序
     *
     * @param arr
     * @return
     */
    private static int[] bubbleSort(int[] arr) {
        if (arr.length == 0) return null;
        for (int i = arr.length - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }

算法复杂度

冒泡排序的最坏时间复杂度O(n^2)
冒泡排序的最好时间复杂度O(n)
冒泡排序的平均时间复杂度O(n^2)
冒泡排序的空间时间复杂度O(1)

算法稳定性

冒泡排序是稳定的

想看完整算法请点击:冒泡排序

上一篇 下一篇

猜你喜欢

热点阅读