gpt4 book ai didi

algorithm - 复杂循环的大 O 表示法

转载 作者:行者123 更新时间:2023-12-01 22:52:54 24 4
gpt4 key购买 nike

我猜不出这个循环的大 O 表示法。

for (int j = 2; j < N; j++) {
for (int k = 2*j; k <= N; k += j) {
nums[k] = false;
}
}

如何计算这个循环的算法复杂度?

最佳答案

这样做的诀窍是微积分用我们理解的积分代替总和。

for y from 2 to N:
do roughly N/j things

所以我们有一个总和:

N/2 + N/3 + N/4 + ... + N/N
= N (1/2 + 1/3 + 1/4 + ... + 1/N)

这个和可以用 1/x1N 的积​​分来近似。其积分为 log(x)。因此,模数误差需要 O(N log(N)) 步骤。

我使劲挥了挥手。但我向你保证,严格的细节是可以填写的,“用近似积分代替总和”有一个O(1)的错误。

关于algorithm - 复杂循环的大 O 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73886379/

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