高級數據結構及算法分析與設計第二講

 一    問題計算複雜度的界定

         

二    算法及時間複雜度

      1. 基本概念

        有限條指令的序列--求解問題的一系列步驟

                 算法A求解問題P:

           把問題P的任何實例作爲算法A的輸入,每步計算是確定性的。

                      A能夠在有限步停機並輸出該實例的正確的解

                 基本運算與輸入規模

                       算法時間複雜度:針對指定基本運算,計算算法所做運行次數

                       基本運算有:比較,加法,乘法,置指針, 交換等

     2. 算法的兩種時間複雜度

          平均情況下的複雜度A(n)

           設S是規模爲n的實例集

           實例IϵS的概率是PI

           算法對實例I所執行的基本運算次數是tI

 

            A(n)=𝐼ϵ𝑆PI ∑_IϵS▒"PI " tI

          最壞情況下的複雜度W(n)

    3. 算法的僞碼錶示

        先寫算法  後面函數名   然後輸入  輸出  之後僞代碼

用僞碼錶示算法

            僞碼不是程序代碼,只是給出關鍵步驟

            僞碼關鍵字

            僞碼中允許過程調用

        

     4. 函數的漸進的界

         大O符號  上界複雜度

              設f和g是定義域爲自然集的N上的函數,若存在正數c和n0,使得對一切n > n0有

                                                               0 <= f(n)  <= cg(n)

              成立, 則稱f(n)的漸進上界是g(n)    記爲  f(n) = O(g(n))

       Ω符號  下界複雜度

               定義:設fg是定義域爲自然數集N上的函數.若存在正數cn0,使得對一切n>n0有,

                                             0cg(n) f(n)

               成立,則稱f(n)的漸進的下界g(n),

               記作

                                          f(n)= Ω(g(n))

         o符號

                  定義:設fg是定義域爲自然數集N上的函數.若對任意正數c,都存在n0,使得對一起n>n0有,

                                       0≤f(n)<c g(n)

                  成立,則記

                                         f(n)=o(g(n))

        小ω符號  

                定義:設fg是定義域爲自然數集N上的函數.若對任意正數c,都存在n0,使得對一起n>n0有,

                                         0c g(n) < f(n)

                成立,則記作

                                         f(n)= ω(g(n))

𝛩      Θ符號  

              若f(n)=O(g(n))f(n)= Ω(g(n)),則記作

                                       f(n)= 𝛩Θ(g(n))

    5. 有關函數漸進的界的三個定理

        定理1

        定理  設fg是定義域爲自然數集合的函數.

        (1)如果lim𝑛→∞𝑓(𝑛)/𝑔(𝑛)存在lim┬(n→∞)⁡〖f(n)/g(n)〗 存在,並且等於某個常數c>0,那麼f(n)= 𝛩Θ(g(n)).

        (2)如果lim𝑛→∞𝑓(𝑛)/𝑔(𝑛)=0lim┬(n→∞)⁡〖f(n)/g(n)〗=0,那麼f(n)= o(g(n)).

        (3)如果lim𝑛→∞𝑓(𝑛)/𝑔(𝑛)=lim┬(n→∞)⁡〖f(n)/g(n)〗=+∞,那麼f(n)= ω(g(n)).

                  多項式函數的階低於指數函數的階

                    對數函數的階低於冪函數的階

       定理2

       定理  設函數f,g,h的定義域爲自然數集合

     (1)如果f=O(g),g=O(h),那麼f=O(h).

     (2如果f= Ω(g),g= Ω(h),那麼f= Ω(h).

     (3如果f= 𝛩Θ(g),g= 𝛩Θ(h),那麼f= 𝛩Θ(h).

 

           函數的階之間的關係具有傳遞性

       定理3

 定理 假設函數fg的定義域爲自然數集合,若對某個其它函數h,f=O(h)g=O(h),

 那麼                    f+g=O(h)

      該性質可以推廣到有限個函數.

      算法由有限步驟構成,若每一步的時間複雜度上界都是h(n),那麼該函數的時間複雜度函數可以寫作O(h(n))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章