以下递归函数的时间复杂度
Time complexity of the following recursive function
下面递归函数的时间复杂度是多少
int DoSomething(int n){
if(n<=2)
return 1;
else
return (DoSomething(floor(sqrt( n) )) + n);
}
选项是:-
- O(n^2)
- O(n log n) //所有日志都以 2 为底
- O(log n )
- O(log log n )
时间复杂度函数为(忽略floor
,因为它渐近无关):
我们需要在算法终止时找到 m
,即当:
下面递归函数的时间复杂度是多少
int DoSomething(int n){
if(n<=2)
return 1;
else
return (DoSomething(floor(sqrt( n) )) + n);
}
选项是:-
- O(n^2)
- O(n log n) //所有日志都以 2 为底
- O(log n )
- O(log log n )
时间复杂度函数为(忽略floor
,因为它渐近无关):
我们需要在算法终止时找到 m
,即当: