這節課,大概講了一些符號的用法,畢竟偏數學化,沒有涉及算法的知識。我也參考了下別人的筆記,本節課內容不是太多,主要是符號表示和遞歸的復雜度求解方式,下面分2個部分講解。
一,漸進符號
(1)O符號,f(n) = O(g(n)),表示f(n)的復雜度最多與g(n)一個數量級,即小於等於。
(2)Ω符號,f(n) = Ω(g(n)),f(n)的復雜度最少與g(n)一個數量級,即大於等於。
(3)o符號,f(n) = o(g(n)),表示f(n)的復雜度要比g(n)的數量級小,即小於。
(4)ω符號,f(n) = ω(g(n)),表示f(n)的復雜度要比g(n)的數量級大,即大於。
(5)Θ符號,(n) = Θ(g(n)),表示f(n)的復雜度既大於等於g(n)的復雜度,又小於等於g(n)的復雜度,即於g(n)的復雜度相當。
二,三種方式來解遞歸式
算法設計中經常會用到遞歸,利用遞歸式的方法可以清晰地顯示算法的整個過程,而對於分析算法的復雜度,解遞歸式就有了用處。
(1)代換法。
分為三個步驟:a)憑感覺猜,不用關系系數和常數,猜測可能的形式。b)通過數學歸納法驗證第一步才出來的form是否滿足條件。c)確定系數和常數。缺點是並不嚴格。
(2)遞歸樹。
上一節歸並排序的時候有用到過這個方法。
(3)主定理。(只對特等的遞歸式有效,包含三種情況)
主定理通常解決如下的遞歸表達式:遞歸式描述的是將規模為n的問題划分為a個子問題,並且每個子問題的規模是n/b,這里a和b是正常數。划分原問題和合並結果的代價有函數f(n)描述。
現在是不是很累了?休息一下,清涼一夏。