确定具有内循环重复时间的循环的 big-O 运行时是常量
Determining the big-O runtimes of loop with inner loop repeat time is const
我有一个功能
for(int i=0;i<n; i++)
{
b[i]=0;
for(int j=0;j<5;j++)
{
b[i]=a[j+i]
}
}
我需要计算上述函数的大O。我的答案是:
内循环 运行 5n
时间 => O(n)
。
所以总的复杂度是O(n)
。我想我的计算有误,但我不知道我的错误在哪里。
不,你没有犯任何错误。您的想法是正确的,您的解决方案是否完美!
外循环将 运行 n 次,内循环 运行s 5(常数)次。
因此,循环复杂度为 O(5*n) = O(n),其他语句的时间复杂度为常量。
因为,程序执行 5*n 次意味着程序的时间复杂度为 O(n)。
我有一个功能
for(int i=0;i<n; i++)
{
b[i]=0;
for(int j=0;j<5;j++)
{
b[i]=a[j+i]
}
}
我需要计算上述函数的大O。我的答案是:
内循环 运行 5n
时间 => O(n)
。
所以总的复杂度是O(n)
。我想我的计算有误,但我不知道我的错误在哪里。
不,你没有犯任何错误。您的想法是正确的,您的解决方案是否完美!
外循环将 运行 n 次,内循环 运行s 5(常数)次。
因此,循环复杂度为 O(5*n) = O(n),其他语句的时间复杂度为常量。
因为,程序执行 5*n 次意味着程序的时间复杂度为 O(n)。