冒泡排序的最佳情况的时间复杂度为什么是O(n)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Royecode/article/details/52893040

今天去某公司面试,有一个问题问,冒泡排序的最佳情况的时间复杂度是多少,我答的是O(n^2),面试官一脸懵逼,今天在Stackoverflow上看到了O(n)的写法,最佳情况的时间复杂度是O(n),今天是涨姿势了。

public void bubbleSort(int arr[]) {
    boolean didSwap;
    for(int i = 0, len = arr.length; i < len - 1; i++) {
        didSwap = false;
        for(int j = 0; j < len - i - 1; j++) {
            if(arr[j + 1] < arr[j]) {
                swap(arr, j, j + 1);
                didSwap = true;
            }
        }
        if(didSwap == false)
            return;
    }    
}

当arr原本就是升序时,最佳时间发杂度就是O(n)。

展开阅读全文

没有更多推荐了,返回首页