算法基礎和數據結構

算法基礎算法

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的概念及用途,添加刪除結點的原理。

相關文章
相關標籤/搜索