1. 程式人生 > >時間複雜度分析---主定理

時間複雜度分析---主定理

一直以來時間複雜度都不會算嗚嗚嗚,今天理一理

證明咱就算了,沒這腦子。對於第一種情況,舉幾個栗子:

1)例1:二叉樹的遍歷。

           T(n)=2T (n/2)+Θ (1) 。

           其中(a=2), (b=2), (f(n)=1), 此時(ϵ=1)。

           所以 (T(n)=Θ(n)) 。

2)例1:歸併排序。

           T(n)=2T(n/2 )+Θ(n)  。

           其中(a=2), (b=2), (f(n)=n),此時(k=0)。

           所以T(n)=Θ(nlog 2 n)

     例2:二分搜尋(折半搜尋)。

           T(n)=T(n/2 )+Θ(1)  。

           其中(a=1), (b=2), (f(n)=1), 此時(k=0),

           所以T(n)=Θ(log 2 n)。

3)沒栗子了...

例題解析

1)

        第一步:列出a=9,b=3,f(n)=n;

        第二步:計算=

        第三步:與f(n)比較,發現是第一種情況,代入計算,答案T(n)=Θ(n^2);

2)

         第一步:列出a=1,b=2/3,f(n)=1;

         第二步:計算=1;

         第三步:與f(n)比較,發現是第二種情況,代入計算,答案T(n)=Θ(logn);

3)

    【NOIP2015初賽】某演算法的計算時間表示為遞推關係式:

     T(N)=T(N−1)+N, T(0)=1。則該演算法的時間複雜度為______________________________________________________。

     

    【解析】難道這個就要用主定理了?容易推匯出T(n)=T(0)+1+...+n=1+n∗(n+1)/2,   則時間複雜度為O(n^2 ) ,選D