演算法設計與分析課程Part1筆記 2

2021-06-08 01:27:55 字數 1160 閱讀 4470

2. 主方法(master method)

2.1 主方法介紹

為了更好的計算遞迴式的時間複雜度,引入了主方法。

2.2 主方法的證明

三個引數可知,每次劃分時,子問題的個數是原問題的a倍,而大小是原問題的1/b,

2.3 簡單例子

以merge sort為例,每次分為兩個子問題,每個子問題是前乙個問題size的一半,同時每個子問題解決時間長度不會超過n,則a=2,b=2,d=1。由主方法可知t(n)=o(nlogn).

利用gauss遞迴整數演算法,a=3,b=2, d=1.

有序二叉樹的搜尋,a=1,b=2,d=0.

2.4 快速排序(quicksort)

快排是具有實踐意義和穩定性能的演算法(平均時間為o(nlogn)).

總體演算法描述(hoorecirca 1961):

quicksort(array a, length n):

--if n==1 return

--p=choosepivot(a,n)

--partition a around p(partition(a,p))

--recursively sort 1st part

--recursively sort 2nd part

partition(a,p)描述:(partition就是要找打pivot元素的位置,左小,右大)

--這裡假設a的範圍為l到r

part1 演算法分析與程式設計基礎

1.演算法特徵 輸入性 0個或多個輸入 輸出性 1個或多個輸出 確定性 任何條件下,演算法只有唯一執行路徑 有窮性 可行性 2.判斷乙個演算法好壞的標準 正確性 可讀性 健壯性 效率 3 演算法描述 自然語言 框圖 偽 程式語言 程式 資料結構 演算法 4.c 程式檔案分為4個部分 預處理指令 全域...

演算法機考模擬題 part1

1函式求值 題目描述 定義超級和函式f如下 f 0,n n,對於所有的正整數n.f k,n f k 1,1 f k 1,2 f k 1,n 對於所有的正整數k和n.請實現下面solution類中計算f k,n 的函式 1 k,n 14 class solution 例1 f 1,3 6 例2 f 2...

《大話設計模式》學習筆記 part1

物件導向的好處 可維護 可復用 可擴充套件 靈活性好 讓業務邏輯和介面邏輯分開,降低耦合度 在計算器的案例中,建立乙個單獨的運算符號類,用來例項化運算符號物件,並把此物件返回給呼叫者 各種運算方法也分別用不同的類來封裝。在主方法中,選擇需要所例項化的運算符號類的型別 用switch判斷 來例項化相應...