gpt4 book ai didi

time-complexity - 时间复杂度 : O(logN) or O(N)?

转载 作者:行者123 更新时间:2023-12-04 07:03:30 25 4
gpt4 key购买 nike

我以为下面代码的时间复杂度是O(log N),但答案是O(N)。我想知道为什么:

int count = 0;
for (int i = N; i > 0; i /= 2) {
for (int j = 0; j < i; j++) {
count += 1;
}
}

对于内部for循环,它运行了很多次:N + N/2 + N/4 ...

对我来说似乎是logN。请帮助我理解为什么在这里。谢谢

最佳答案

1, 1/2, 1/4, 1/8... 1/2 ** n 是a = 1, r = 1/2 的几何序列(a 是第一项,r 是公共(public)比率)。

它的总和可以用下面的公式计算:

enter image description here

在这种情况下,和的限制是2,所以:

n + n/2 + n/4 ... = n(1 + 1/2 + 1/4...) -> n * 2

因此同谋度是 O(N)

关于time-complexity - 时间复杂度 : O(logN) or O(N)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43773587/

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