首页 > 试题广场 >

下面算法的时间复杂度是 int f ( unsigned i

[单选题]
下面算法的时间复杂度是
int f ( unsigned int n )
{
If ( n == 0|| n == 1)
     return 1;
else return n*f (n-1);
}
  • 0(1)
  • 0(n)
  • 0(n^2)
  • 0(n!)
if和return那行算作1step从recursion那行我们知道每次input都会-1 那么每次recurse从第一次时间为n变成第二次n-1第三次n-2……第n次时n-(n-1)全部相加得到n*n-((n-1)*n/2)约等于(n^2)/2 其中每次recurse都只有1步 所以最后答案是C
发表于 2021-04-15 05:39:48 回复(0)
循环的时间复杂度=循环体的复杂度*循环运行的次数。
发表于 2021-03-12 21:45:08 回复(0)
5sy头像 5sy
循环的时间复杂度=循环体的复杂度*循环运行次数
发表于 2021-03-09 15:00:08 回复(0)