gpt4 book ai didi

algorithm - 代码片段的复杂性第 2 部分

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

根据输入大小给出以下代码片段的复杂度纽:

for(int i=0;i<n;i++) // n*
for(int j =1;j<=n;j=j*2) // n/2 (its half n, but I assume it still counts as n, or is it log(n)?)
a[i]=a[j-1]/2; // 1

for(int i=0;i-n;i++) // n*
if(a[i] %2==0) // 1*
a[i]=2*a[i]; // 1

你从下往上开始。复杂度是:n^2 + n 还是 O(n^2)?

有什么地方可以让我了解如何计算简单算法的复杂性?

最佳答案

正如你所怀疑的,

for(int j =1;j<=n;j=j*2)

这是 O(logn),因为每次迭代 j 都乘以 2。所以总时间是 O(nlogn)。

至于看哪里,我喜欢算法导论,但如果只是简单的算法分析,任何好的教科书都足够了。

关于algorithm - 代码片段的复杂性第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132520/

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