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

来源:互联网 发布:2016网络动漫黑名单 编辑:程序博客网 时间:2024/05/16 15:58

今天去某公司面试,有一个问题问,冒泡排序的最佳情况的时间复杂度是多少,我答的是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)。

0 0