我正在尝试解决一个练习,我必须编写一个带有t(n)∈Θ(n ^ 3/2)运行时的codesnippet。
我被允许使用递归,加法,减法,整数除以2,for循环,if语句,<,>,==以及if-和return-语句。
要获得t(n)∈Θ(n ^ 3)的运行时,我必须只使用3个for循环,我认为有这个规则,通过使用if语句,运行时变为对数。我对如何获得t(n)∈Θ(n ^ 3/2)的运行时没有任何想法。
如果有人可以提供一些建议,我会很高兴。谢谢:))答案 0 :(得分:2)
以下是代码片段,用于查找在 O(N ^ 3/2)中完成的从2到 N 的所有数字的除数因子。
for(int i=2;i<=N;i++)
{
for(j=2;j*j<=i;j++)
{
if(i%j==0)
{
printf("another non-trivial divisor pair for %d is %d,%d",i,j,i/j);
}
}
}
外环 O(N),内部 O(N ^ 1/2)。