x的n次的時間複雜度

2021-10-14 03:35:13 字數 725 閱讀 6586

比較容易想到的是一層迴圈,不斷更新res;

//o(n)

intfunction1

(int x,

int n)

return res;

}

可以用遞迴,但複雜度仍為o(n)

//o(n) = 遞迴深度:n *  單層遞迴時間複雜度:o(1)

intfunction1

(int x,

int n)

遞迴另一種寫法,結果仍為o(n)

//相當於一棵滿二叉樹,乙個結點代表進行了一次遞迴,所以遞迴次數為滿二叉樹的所有結點個數 = n - 1; 單層遞迴的時間複雜度是o(1);

//o(n)= o(n) * o(1)

intfunction1

(int x,

int n)

優化版的遞迴:相當於把方法3的滿二叉樹優化為了一條線,每次n減半,結果是o(log n)

//可以看到方法3單層遞迴中做的4次遞迴都一樣,因此提出來只做一次

//o(logn)= 遞迴深度o(log n)* 單層遞迴的時間複雜度o(1)

intfunction1

(int x,

int n)

遞迴的時間複雜度是o(遞迴深度 * 單層遞迴時間複雜度);

dfs時間複雜度 時間複雜度 空間複雜度

時間複雜度的數學證明方法相對比較複雜,通常在工程實際中,會分析就好。注意 只看最高複雜度的運算 int for for for for int遞迴如何分析時間複雜度?常數係數可以忽略,在分析時不用考慮,只要說以上術語即可。主定理 master throrem 上述第四種是歸併排序,所有排序演算法,最...

演算法的複雜度 時間複雜度與空間複雜度

通常,對於乙個給定的演算法,我們要做 兩項分析。第一是從數學上證明演算法的正確性,這一步主要用到形式化證明的方法及相關推理模式,如迴圈不變式 數學歸納法等。而在證明演算法是正確的基礎上,第二步就是分析演算法的時間複雜度。演算法的時間複雜度反映了程式執行時間隨輸入規模增長而增長的量級,在很大程度上能很...

演算法的時間複雜度 空間複雜度

時間複雜度和空間複雜度是度量演算法效率的常用指標 事後統計,不常用 事前統計影響因素 演算法策略 問題規模 程式語言 質量 機器執行指令的速度 撇開軟硬體的影響,演算法執行工作量的大小只依賴於問題的規模 通常用整數n表示 乙個演算法是由控制結構 順序,分支,迴圈三種 和原操作 指固有資料型別的操作 ...