gpt4 book ai didi

python - O(logn) 外循环内 O(n) 的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:44 25 4
gpt4 key购买 nike

我想弄清楚这个算法的时间复杂度。 A 是数组输入。代码没有运行,顺便说一句,它是为了演示目的。

def func(A):
result = 0
n = len(A)
while n > 1:
n = n/2
result = result + min(A[1,...,n])
return result

假设数组 A 的长度为 n。

我假设它的时间复杂度为 O(n(log n)),因为 while 循环的复杂度为 O(log n),而 min 函数的复杂度为 O(n)。然而,这个函数显然复杂度为 O(n) 而不是 O(n(log n))。我想知道这怎么可能?

最佳答案

您获得的迭代总数线性取决于 n。它是 n/2 + n/4 + n/8 + ... = n(1/2 + 1/4 + 1/8 + ...) 这就是 O(n) 表示的。

关于python - O(logn) 外循环内 O(n) 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com