算法沒學好,後邊的不完善,
文章目錄
Lecture 1 Grading
- What are algorithms ?
An algorithm is a sequence of computational steps that transform the input into the output.
vocabulary:{
algorithm:算法,
sequence:序列,
computational:計算的,
transform:轉換,
complexity:複雜度
}
Lecture 2 Algorithm complexity
- 遞歸,分治,時間複雜度計算,三個符號的關係
-
寫遞歸表達式
-
代換法 substitution method
-
遞歸樹法 recursion tree method
-
主方法(注意適用範圍)master method
,
compare with
1) grows polynomially slower than ,
2) and grow at similar rate,
3) grows polynomially faster than ,
vocabulary:{
asymptotic:漸進的,
bound:邊界,
positive:正的,
constant:常數,
merge:合併歸併,
devide:劃分,
conquer:求解,
combine:組合,
trivial:微不足道的,
recursively:遞歸的,
insertion sort:插入排序,
scale:規模,
original:原來的,
tight:緊的,
substitution:代換,
polynomially :多項式,
approximately:近似的,
multiplication:乘法
}
- 大數乘法 BIG INTEGER MULTIPLICATION
at beginning:
then:
注意第二個式子ac,bd只需要兩次乘法,再次出現直接用,所以只有三個乘法
- 棋盤覆蓋問題
設計算法優先考慮分治算法 - 二分搜索算法
- 希爾排序算法複雜度shell sort介於到之間
Lecture 3 Liner Time Sorting
-
讀懂僞代碼
-
爲代碼寫思路
-
最好,最壞,期望,平時考慮最壞,桶排序考慮期望
-
交換排序算法
通過決策樹證明
-
兩兩比較排序設計最優的算法
-
空間代價換取線性時間排序
-
線性排序的步驟
-
基數排序爲什麼從低位開始排,怎麼證明從高位開始排是錯的
- counting sort計數排序
Counting sort is a stable sort: it preserves the input order among equal elements. - RADIX SORT基數排序
run counting sort on each digit.
基數排序應該從lower-order digits排序,因爲counting sort 是穩定的,所以基數排序能夠進行,並且是穩定的
- 作業做過的題一定要做對
- 證明桶排序的期望
vocabulary:{
decision tree:決策樹,
permutations:排列,
approximation:近似,
stable:穩定的,
preserves:保護,
auxiliary:輔助的,
exponentially:呈幾何級數地,
radix:基數,
bucket:桶
}
Lecture 4 Hash Tables
-
除法方法 Division method,most popular
-
乘法除法方法 multiplication method
-
線性探測,指數探測,雙哈希
-
ppt裏面的證明題都是重點
-
開放尋址
- 線性方法
- 二次函數法Quadratic
- 雙hash函數
vocabulary:{
secondary clustering:二次羣集,
structures:結構,
satellite:人造衛星附屬物,
successor:後繼,
predecessor:前驅,
occupied:佔據,
collision:碰撞,
occurs:發生,
uniform:一致性,
expected:期望,
asymptotic:漸進的,
rigorous:嚴格的,
complicated:複雜的,
desired:目標,
Resolving:解決(更強烈),
Probing strategies:探索策略,
Quadratic:二次函數
}
Lecture 5 Binary Search Tree
vocabulary:{
subtree:子樹,
ancestor:祖先,
Splice: 替換,
partition pivot:分區樞軸,
proportional:成比例,
Theorem:定理,
Corollary:必然結果,
inductive:歸納的,
algebra:代數學,
inductive:歸納,
}
- 二叉查找樹 BST
- 合法性
- Operations: successer後繼
13沒有右子樹,找他的祖先,使得13包含於這個祖先的左子樹,那麼這個祖先就是要找的successor
-
predecessor (前驅)is similar
-
二叉,紅黑樹,B樹,樹的擴張
-
構建二叉查找樹等同於快速排序
-
二叉查找樹插入和刪除
-
旋轉節點構建平衡樹控制樹高
-
二叉樹前驅後繼節點
-
證明二叉樹隨機插入的樹高
- 可能要出的壓軸題,證明隨機生成的二叉樹高度的期望是logn
Lecture 6 Red-Black Trees:
vocabulary:{
guarantee:維護保證,
rotation:旋轉,
descendent:後裔,
ancestor:祖先
}
19 紅黑樹最重要
-
紅黑樹的五個性質
-
a height-h node has black-height h/2
5. 重要的證明: 證明樹高是
6. 維護的複雜度
Lecture 7 B-tree
vocabulary:{
devise:設計,
asymptotic:佔有,
}
- 節點內元素升序排序
- 度的概念 ,
- 怎麼分裂的?
- 怎麼刪除可能考
- 2-3-4樹,和紅黑樹等價,要考要畫
- OS-Tree 有順序的樹
- 維護
- 上色
- 旋轉
- 順序數字
- 區間樹
- 樹堆(同時具有樹和堆的性質)
- 跳躍表,用於加快速度
- 快線構建過程(扔硬幣)
- 搜索過程
14. 攤還分析
- the aggregate method.(聚集)
- the accounting method.(傾向於會計法)
- the potential method.
some demo
15. 動態規劃
- 遞歸表達式必考
- 最優子結構(反證法,如果不是最優,則不在最優結果裏)
- 重疊子問題
- 三角劃分問題(考)
- 矩陣鏈乘
- 最長公共子序列
- 兩個字符串的編輯距離
- 貪心算法
- 遞歸表達式
- 活動安排問題
- 最早排序一定在
- 最晚開始的算法合理性證明
- 0-1揹包和分數揹包
- 哈夫曼編碼的證明
- 找錢問題
- 線性規劃
- 目標函數
- 約束條件
- 單純形法
- 轉化標準型
- 轉化爲鬆弛型
- 計算過程
- FFT算法
通俗理解FFT算法
- 多項式表達,點綴表達
- 奇偶劃分遞歸表達