寫給自己!
遞迴式的時間複雜度很難人為的計算出來,根據演算法導論知道乙個應用公式:
使用時主要思路如下:
首先根據自己的遞迴**寫出t(n),t(n)為遞迴所用的總時間,其中,n為輸入的規模,a為分解成子問題的個數,n/b為子問題輸入的子規模,f(n)是乙個漸進正的函式。a個子問題被分別遞迴的解決,時間各為t(n/b)。
第二,看f(n)與n*logb a比較大小,時間複雜度由較大的乙個決定。
第三,在比較出來以後,一定要去驗證其前提條件十分符合,符合的才能是正確的複雜度,否則,用代換法或遞迴樹法。
遞迴式執行時間定義如下:
用合併排序來說明:
d(n)為分解時占用的時間,這一步僅僅計算出陣列的中間位置,所以是常量時間θ(1);
c(n)為合併的執行時間,所以c(n)=θ(n);
軟考 遞迴式時間複雜度計算詳解
遞迴演算法的時間複雜度分析 在演算法分析中,當乙個演算法中包含遞迴呼叫時,其時間複雜度的分析會轉化為乙個遞迴方程求解。實際上,這個問題是數學上求解漸近階的問題,而遞迴方程的形式多種多樣,其求解方法也是不一而足,比較常用的有以下四種方法 方法一 代換法 代換法主要需要以下兩個步驟 1 猜答案,不需要完...
軟考 遞迴式時間複雜度計算詳解
遞迴演算法的時間複雜度分析 在演算法分析中,當乙個演算法中包含遞迴呼叫時,其時間複雜度的分析會轉化為乙個遞迴方程求解。實際上,這個問題是數學上求解漸近階的問題,而遞迴方程的形式多種多樣,其求解方法也是不一而足,比較常用的有以下四種方法 代換法主要需要以下兩個步驟 1 猜答案,不需要完全猜出來,不需要...
時間複雜度計算
定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 當輸入量n逐漸加大時,時間複雜性的極限情形稱為演算法的 漸近時間複雜性 我們常用大o表示法表示時間複雜性,注意它是某乙個演算法的時間複雜性。大o表示只是說有上界,由定義如...