算法複習

算法沒學好,後邊的不完善,


Lecture 1 Grading

在這裏插入圖片描述

  1. 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

  1. 遞歸,分治,時間複雜度計算,三個符號的關係
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

在這裏插入圖片描述

  1. 寫遞歸表達式
    在這裏插入圖片描述

  2. 代換法 substitution method
    在這裏插入圖片描述
    在這裏插入圖片描述

  3. 遞歸樹法 recursion tree method
    在這裏插入圖片描述

  4. 主方法(注意適用範圍)master method
    GivenT(n)=aT(n/b)+f(n),a1,b>1Given T(n) = aT(n/b)+f(n),a\ge1,b>1,
    compare f(n)f(n) with nlogban^{\log_ba}
    1)f(n)f(n) grows polynomially slower than nlogban^{log_ba} , f(n)=O(nlogbaε)f(n)=O(n^{log_ba-\varepsilon})
    T(n)=Θ(nlogba)T(n) = \Theta(n^{log_ba})
    2)f(n)f(n) and nlogbalgknn^{log_ba}lg^kn grow at similar rate, f(n)=Θ(nlogbalgkn)f(n)=\Theta(n^{log_ba}lg^kn)
    T(n)=Θ(nlogbalgk+1n)T(n) = \Theta(n^{log_ba}lg^{k+1}n)
    3)f(n)f(n) grows polynomially faster than nlogban^{log_ba}, f(n)=Ω(nlogbaε)f(n)=\Omega(n^{log_ba-\varepsilon})
    T(n)=Θ(f(n))T(n) = \Theta(f(n))

vocabulary:{
	asymptotic:漸進的,
	bound:邊界,
	positive:正的,
	constant:常數,
	merge:合併歸併,
	devide:劃分,
	conquer:求解,
	combine:組合,
	trivial:微不足道的,
	recursively:遞歸的,
	insertion sort:插入排序,
	scale:規模,
	original:原來的,
	tight:緊的,
	substitution:代換,
	polynomially :多項式,
	approximately:近似的,
	multiplication:乘法
}
  1. 大數乘法 BIG INTEGER MULTIPLICATION
    在這裏插入圖片描述
    at beginning: XY=ac2n+bd+(ad+bc)2(2/n)XY=ac2^n+bd+(ad+bc)2^{(2/n)}
    T(n)=4T(n/2)+Θ(n)=Θ(nlog24)=Θ(n2)T(n)=4T(n/2)+\Theta(n) = \Theta(n^{log_24})=\Theta(n^2)
    then: XY=ac2n+bd+[ac+bd(ab)(cd)]2(2/n)XY=ac2^n+bd+[ac+bd-(a-b)(c-d)]2^{(2/n)}
    T(n)=3T(n/2)+Θ(n)=Θ(nlog23)=Θ(n1.59)T(n)=3T(n/2)+\Theta(n)=\Theta(n^{log_23}) = \Theta(n^{1.59})

注意第二個式子ac,bd只需要兩次乘法,再次出現直接用,所以只有三個乘法

  1. 棋盤覆蓋問題
    設計算法優先考慮分治算法
  2. 二分搜索算法
  3. 希爾排序算法複雜度shell sort介於O(n1.3)O(n^{1.3})O(n2)O(n^2)之間

Lecture 3 Liner Time Sorting

  1. 讀懂僞代碼

  2. 爲代碼寫思路

  3. 最好,最壞,期望,平時考慮最壞,桶排序考慮期望

  4. 交換排序算法
    O(logn)O(log n)通過決策樹證明
    在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

  • 兩兩比較排序設計最優的算法

  • 空間代價換取線性時間排序

  • 線性排序的步驟

  • 基數排序爲什麼從低位開始排,怎麼證明從高位開始排是錯的

  1. counting sort計數排序
    在這裏插入圖片描述
    在這裏插入圖片描述
    Counting sort is a stable sort: it preserves the input order among equal elements.
  2. RADIX SORT基數排序

run counting sort on each digit.
在這裏插入圖片描述
基數排序應該從lower-order digits排序,因爲counting sort 是穩定的,所以基數排序能夠進行,並且是穩定的

  1. 作業做過的題一定要做對
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  2. 證明桶排序的期望

    在這裏插入圖片描述
    在這裏插入圖片描述
vocabulary:{
	decision tree:決策樹,
	permutations:排列,
	approximation:近似,
	stable:穩定的,
	preserves:保護,
	auxiliary:輔助的,
	exponentially:呈幾何級數地,
	radix:基數,
	bucket:桶
	
}

Lecture 4 Hash Tables

在這裏插入圖片描述

在這裏插入圖片描述

  1. 除法方法 Division method,most popular
    在這裏插入圖片描述

  2. 乘法除法方法 multiplication method
    在這裏插入圖片描述

  3. 線性探測,指數探測,雙哈希在這裏插入圖片描述

  4. ppt裏面的證明題都是重點在這裏插入圖片描述

  5. 開放尋址

  • 線性方法
    在這裏插入圖片描述
  • 二次函數法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:歸納,
}
  1. 二叉查找樹 BST
  • 合法性
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  • Operations: successer後繼
    在這裏插入圖片描述
    在這裏插入圖片描述

13沒有右子樹,找他的祖先,使得13包含於這個祖先的左子樹,那麼這個祖先就是要找的successor

  • predecessor (前驅)is similar

  • 二叉,紅黑樹,B樹,樹的擴張

  • 構建二叉查找樹等同於快速排序

  • 二叉查找樹插入和刪除
    在這裏插入圖片描述

  • 旋轉節點構建平衡樹控制樹高

  • 二叉樹前驅後繼節點
    在這裏插入圖片描述

  • 證明二叉樹隨機插入的樹高
    在這裏插入圖片描述

  1. 可能要出的壓軸題,證明隨機生成的二叉樹高度的期望是logn
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

Lecture 6 Red-Black Trees:

vocabulary:{
	guarantee:維護保證,
	rotation:旋轉,
	descendent:後裔,
	ancestor:祖先
}

19 紅黑樹最重要

  1. 紅黑樹的五個性質
    在這裏插入圖片描述

  2. a height-h node has black-height \geqh/2

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
5. 重要的證明: 證明樹高是 O(logn)O(log n)
在這裏插入圖片描述
6. 維護的複雜度

Lecture 7 B-tree

vocabulary:{
	devise:設計,
	asymptotic:佔有,
	
}
  • 節點內元素升序排序
  • 度的概念 tt(t1ni2t1)(t-1 \leq n_i \leq 2t-1)
  • 怎麼分裂的?
  • 怎麼刪除可能考
  1. 2-3-4樹,和紅黑樹等價,要考要畫
  2. OS-Tree 有順序的樹
  3. 維護
  • 上色
  • 旋轉
  • 順序數字
  1. 區間樹
  2. 樹堆(同時具有樹和堆的性質)
  3. 跳躍表,用於加快速度
  • 快線構建過程(扔硬幣)
  • 搜索過程
    在這裏插入圖片描述

14. 攤還分析

  • the aggregate method.(聚集)
  • the accounting method.(傾向於會計法)
  • the potential method.
    some demo

15. 動態規劃

  • 遞歸表達式必考
  • 最優子結構(反證法,如果不是最優,則不在最優結果裏)
  • 重疊子問題
  • 三角劃分問題(考)
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 矩陣鏈乘
  • 最長公共子序列
  • 兩個字符串的編輯距離
  1. 貪心算法
  • 遞歸表達式
  • 活動安排問題
  • 最早排序一定在
  • 最晚開始的算法合理性證明
  • 0-1揹包和分數揹包
  1. 哈夫曼編碼的證明
  2. 找錢問題
  3. 線性規劃
  • 目標函數
  • 約束條件
  1. 單純形法
  • 轉化標準型
  • 轉化爲鬆弛型
  • 計算過程
  1. FFT算法
    通俗理解FFT算法
  • 多項式表達,點綴表達
  • 奇偶劃分遞歸表達
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章