1. 程式人生 > >面試複習重點 演算法 資料結構 【山科大牛陳磊整理】

面試複習重點 演算法 資料結構 【山科大牛陳磊整理】

演算法、資料結構

一:演算法

1. 演算法的幾個特徵是什麼。

2. 演算法複雜性的定義。大O、θ、Ω、小o分別表示的含義。

3. 遞迴演算法的定義、遞迴演算法的兩要素。

4. 分治演算法的思想,經典的分治演算法(全排列、二分搜尋、歸併排序、快速排序、線性時間選擇、最接近點對問題)

5. 動態規劃演算法解題框架,動態規劃演算法的兩個要素是什麼?備忘錄方法是什麼?

6. 經典的動態規劃問題(矩陣連乘問題、最長公共子序列問題、0-1揹包問題)。

7. 貪心演算法的思想,貪心演算法的兩個要素。

8. 經典的貪心問題(活動安排問題、揹包問題、裝載問題、哈夫曼編碼、單源最短路徑、最小生成樹問題)。

9. 回溯法的思想,回溯法中有哪兩種典型的模型。

10. 經典的回溯演算法(n後問題、0-1揹包問題、旅行售貨商問題)。

11. 分支限界法思想,有哪兩種分支限界法。

12. 經典的分支限界演算法(0-1揹包問題、旅行售貨商問題)。

二:資料結構

1. 資料結構的定義。

2. 棧的兩個應用:括號匹配和表示式的計算。是怎麼應用的?表示式計算用的是哪種表達方式?有什麼好處?

3. 字串匹配演算法:樸素的匹配演算法、KMP演算法

4. 二叉樹前序、中序、後序遞迴遍歷演算法。二叉樹前序非遞迴遍歷演算法。

5. ,建堆演算法,堆的插入和刪除演算法,堆排序

6. 雜湊。雜湊函式的有哪些種?餘數的取法? 處理衝突的方法? 閉雜湊方法有哪些?

7. 二叉搜尋樹的搜尋、插入、刪除。時間複雜度。

8. 二叉平衡樹的插入結點的原理,有哪幾種旋轉方式?分別適用於哪種情況。分析二叉平衡樹的時間複雜度。

9. 紅黑樹的定義,紅黑樹的效能分析和與二叉平衡樹的比較

10. 圖有哪些儲存表示。

11. 連結串列插入排序、連結串列歸併排序。

12. 常見的有哪幾種排序演算法,試比較其時間複雜度,以及是否穩定,及各自使用的情形。

13. 常用分配排序有哪幾種? 基數排序的定義,分類及原理。

14. B樹、B+樹、Trie的概念及用途,新增刪除結點的原理。