gpt4 book ai didi

algorithm - 循环迭代分析第 2 部分

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

在我开始之前澄清一下,这不是家庭作业,而是我正在为考试而学习。我已经给出了以下问题的解决方案。我想要一些建设性的反馈。

感谢在我上一个问题中留下反馈的人。下面我详细给出了为什么我认为答案是这样的解决方案。

根据 O(n) 表示法求运行时间。

int y=0;
for(int j=1; j*j<=n; j++)// runs from 1->j=sqrt(n) times
y++; //constant - c

因此,运行时间是 c x n^1/2 = O(n^1/2)

Q2.

int b=0;
for(int i=n; i>0; i--) //runs from n->1
for(int j=0; j<i; j++) // runs from 0 to i
b=b+5; //constant

对于 j (1,2...,n) 的每个值,内部循环运行 i 次常数 = ci。- nc+(n-1)+...+2c+1c = c(n+..+2+1) = cn(n+1)/2 = O(n^2) 运行时间。

Q3。

int y=1;
int j=0;
for(j=1; j<=2n; j=j+2) //runs 2n times, increments by 2
y=y+i; //constant c

int s=0;
for(i=1; i<=j; i++) // not a nested for loop, therefore runs n times
s++;

运行时间:O(n)

Q4。

int x=0; //constant
for(int i=1; i<=n; i=i*3) //runs log_3 (n) times
{
if(i%2 != 0) // for values above will always be 1

for(int j=0; j<i; j++) // runs from 0 to log_3(n)
x++;
}

所以我们有 clog_3(n)xclog_3(n) = O(log_3(n))^2

最佳答案

好的,前三个是毫无疑问的(我相信,都是正确的)。但是对于 Q4 有一个问题。

您的回答有点不正确。当然,结果不是 O(log_3(n))^2。这种情况发生在内部循环中,它只进行了 O(log_3(n)) 次。而且,不是来自 0-log_3(n),而是来自 0-m(其中 m 显然与 i 相关>).

假设以上所有,我认为正确答案是O(mlog3(n))。但如果有人认为我错了,请纠正我。

关于algorithm - 循环迭代分析第 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11111918/

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