该代码的时间复杂度是多少?

时间:2020-06-24 18:12:34

标签: algorithm data-structures time-complexity big-o

我有此代码:

int arr [];
QuickSort.(arr); // O(log n)
for (int i = 0; i < arr.length() - 1; i++) {
    print(i); // O(n)
}

这的时间复杂度是多少?是O(n * log n)还是O(n + log n)

1 个答案:

答案 0 :(得分:0)

O(log n) + O(n) =
O(n + log n) = 
O(n)

在复杂度分析中,您只保留最大的因素。当n > log n消失时,log n消失了,因为与n达到无穷大时的n相比,其增长微不足道。

另一方面,快速排序算法是O(n²)算法,因此我想实际的复杂度应该是:

O(n²) + O(n) =
O(n² + n) = 
O(n²)

n是数组的大小。