算法基礎算法
1.算法的幾個特徵數據結構
有窮性、肯定性、輸入、輸出、可行性框架
2.算法的複雜性定義函數
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.外部排序的過程。
15.B樹、B+樹、Trie的概念及用途,添加刪除結點的原理。