gpt4 book ai didi

algorithm - 寻找循环的复杂性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:28 24 4
gpt4 key购买 nike

我得到了这个算法,我被告知要找出它的复杂度 big theta。

for (i = 1; i <= n; i++) {
j = n;
while( j >= 1) {
j = j/3;
}

}

我知道外部 for 循环运行了 n 次。 while 循环虽然更棘手,但它可能是 log n(以 3 为底)。总共使它成为 n*log3n

这是正确的吗?

最佳答案

有一个大小为 n 的外部 for 循环。它为总体复杂度贡献了一个 n 因子的复杂度。

假设内部 while 循环运行了 m 次。在第 i 次迭代之后,j 的值将为 n/(3^i)。我们将运行它直到 n/(3^i) > 1。因此,

=> n/(3^i) = m
=> n = 3^m
=> log(n) = log2(3) * m
=> m = O(log(n))

因此,for 循环的复杂度为 O(n),而 while 循环的复杂度为 O(log(n))。嵌套循环的复杂度变为 O(n log(n))。

关于algorithm - 寻找循环的复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214695/

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