gpt4 book ai didi

algorithm - 与大O有关的困惑

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

我在研究时空复杂度时遇到了这个问题

O(n + (n/2 + n/4 .... n/n)) = O(n + log(n))。

我不明白这是怎么回事?谁能提供一些见解?

最佳答案

我认为这取决于您的分母。总结

n + n / 2 + n / 4 + n / 8 + ... + n / n

总和为 O(n),因为它等于

n (1 + 1/2 + 1/4 + 1/8 + ...)

≤ 2n

因此,从技术上讲它是 O(n + log n) 是正确的,因为 O(n + log n) = O(n),但这是一种非常奇怪的写法。 O(n) 是一种更好的写法。

总结

n + n/2 + n/4 + n/6 + n/8 + ... + n / n

锻炼到

n (1 + 1/2 + 1/4 + 1/6 + 1/8 + ... + 1/n)

= n (1 + (1/2) * (1 + 1/2 + 1/4 + 1/6 + ... + 1/(n/2)))

= n (1 + (1/2)H_{(n/2)})

= Θ(n log n)

这是有效的,因为 nth harmonic number是 Θ(log n)。这可能更接近预期,但将 + 替换为 ×。

希望这对您有所帮助!

关于algorithm - 与大O有关的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498716/

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