我被這兩個代碼卡住了。瞭解大O符號 - 破解編碼訪談示例9
代碼1
int f(int n){
if (n <= 1){
return 1;
}
return f(n-1) + f(n-1);
}
代碼2(平衡二叉搜索樹)
int sum(Node node){
if(node == null){
return 0;
}
return sum(node.left) + node.value + sum(node.right);
}
作者說代碼1的運行時間爲O(2^n)和空間複雜度是O(n)
並且代碼2是O(N)
我不知道這兩個代碼有什麼不同。看起來兩者是相同的二叉樹
哦,這是我的錯誤,只是編輯它:) – Daniel
然後是完美的二叉樹O(2^n)?因爲我認爲它與第一個 – Daniel
@Daniel具有相同的結構,第一個與樹木無關。第二個是二叉樹,但它不必平衡。當我們聲明它是O(n)時,我們認爲'n'是樹中節點的數量。 – alfasin