CC189
p45计算Big O
int f(int n){
if(n <= 0){
return 1;
}
return f(n - 1) + f(n -1);
}这个是O(2^N)复杂度,O(N)空间
p51
int factorial(int n){
if(n < 0){
return -1;
}else if(n == 0){
return 1;
}else{
return n * factorial(n - 1);
}
}这个是O(N)复杂度,根据T(N) = T(N) + 1推出
p52
这是O(2^N)复杂度,容易理解
下面这个也是O(2^N)的复杂度!
注意不是O(N2^N),实际算出来前面不过是多了个系数 = 2
这题的复杂度是O(N),因为fib(n)只需要抓出fib(n-1) 和fib(n - 2)的结果相加就好,constant time的操作
体现了记忆化搜索的优势
Last updated
Was this helpful?