當前位置:成語大全網 - 新華字典 - 算法分析與設計的作品目錄

算法分析與設計的作品目錄

第壹部分 基礎工具

第1章 算法分析

1.1 算法的分析方法學

1.1.1 偽代碼

1.1.2 隨機存取機(RAM)模型

1.1.3 統計基本操作的數量

1.1.4 遞歸算法分析

1.2 漸近符號

1.2.1 大O符號

1.2.2 與大“O”相關的漸近符號

1.2.3 漸近表示的重要性

1.3 數學概覽

1.3.1 求和

1.3.2 對數和指數

1.3.3 簡單證明技術

1.3.4 概率基礎

1.4 算法分析案例研究

1.4.1 二次時間前綴平均值算法

1.4.2 線性時間前綴平均值算法

1.5 平攤方法

1.5.1 平攤技術

1.5.2 擴展數組實現分析

1.6 實驗

1.6.1 實驗組織

1.6.2 數據分析和可視化

1.7 習題

基礎題

創新題

程序設計

1.8 本章註記

第2章 基本數據結構

2.1 棧和隊列

2.1.1 棧

2.1.2 隊列

2.2 向量、表和序列

2.2.1 向量

2.2.2 表

2.2.3 序列

2.3 樹

2.3.1 樹抽象數據類型

2.3.2 樹的遍歷

2.3.3 二叉樹

2.3.4 表示樹的數據結構

2.4 優先隊列和堆

2.4.1 優先隊列抽象數據類型

2.4.2 PQ排序、選擇排序和插入排序

2.4.3 堆數據結構

2.4.4 堆排序

2.5 字典與散列表

2.5.1 無序字典ADT

2.5.2 散列表

2.5.3 散列函數

2.5.4 壓縮映射

2.5.5 沖突處理模式

2.5.6 通用散列

2.6 Java示例:堆

2.7 習題

基礎題

創新題

程序設計

2.8 本章註記

第3章 查找樹和跳躍表

3.1 有序字典和二叉查找樹

3.1.1 有序表

3.1.2 二叉查找樹

3.1.3 二叉查找樹中的查找

3.1.4 二叉查找樹中的插入

3.1.5 二叉查找樹中的刪除

3.1.6 二叉查找樹的性能

3.2 AVL樹

3.2.1 更新操作

3.2.2 性能

3.3 深度有界查找樹

3.3.1 多路查找樹

3.3.2 (2,4)樹

3.3.3 紅黑樹

3.4 伸展樹

3.4.1 伸展

3.4.2 伸展過程的平攤分析

3.5 跳躍表

3.5.1 查找

3.5.2 更新操作

3.5.3 跳躍表的概率分析

3.6 Java示例:AVL樹和紅黑樹

3.6.1 AVL樹的Java實現

3.6.2 紅黑樹的Java實現

3.7 習題

基礎題

創新題

程序設計

3.8 本章註記

第4章 排序、集合和選擇

4.1 歸並排序

4.1.1 分治法

4.1.2 歸並排序和遞歸方程

4.2 集合抽象數據類型

4.2.1 簡單的集合實現

4.2.2 具有union-find操作的劃分

4.2.3 基於樹的劃分實現

4.3 快速排序

4.4 基於比較的排序下界

4.5 桶排序和基數排序

4.5.1 桶排序

4.5.2 基數排序

4.6 比較排序算法

4.7 選擇

4.7.1 剪枝-查找法

4.7.2 隨機化快速選擇

4.7.3 隨機化快速選擇分析

4.8 Java示例:原位快速排序

4.9 習題

基礎題

創新題

程序設計

4.10 本章註記

第5章 基本技術

5.1 貪心法

5.1.1 背包問題

5.1.2 任務調度

5.2 分治法

5.2.1 分治遞歸方程

5.2.2 整數相乘

5.2.3 矩陣相乘

5.3 動態規劃

5.3.1 矩陣鏈乘

5.3.2 壹般技術

5.3.3 0-1背包問題

5.4 習題

基礎題

創新題

程序設計

5.5 本章註記

第二部分 圖算法

第6章 圖

6.1 圖抽象數據類型

6.2 圖的數據結構

6.2.1 邊表結構

6.2.2 鄰接表結構

6.2.3 鄰接矩陣結構

6.3 圖的遍歷

6.3.1 深度優先查找

6.3.2 雙連通分量

6.3.3 廣度優先查找

6.4 有向圖

6.4.1 遍歷有向圖

6.4.2 傳遞閉包

6.4.3 DFS和垃圾收集

6.4.4 有向無環圖

6.5 Java示例:深度優先查找

6.5.1 修飾模式

6.5.2 DFS引擎

6.5.3 模板方法設計模式

6.6 習題

基礎題

創新題

程序設計

6.7 本章註記

第7章 加權圖

7.1 單源點最短路徑

7.1.1 Dijkstra算法

7.1.2 Bellman-Ford最短路徑算法

7.1.3 有向無環圖中的最短路徑

7.2 所有頂點對之間的最短路徑

7.2.1 動態規劃最短路徑算法

7.2.2 利用矩陣相乘計算最短路徑

7.3 最小生成樹

7.3.1 Kruskal算法

7.3.2 Prim-Jarník算法

7.3.3 Bar?vka算法

7.3.4 MST算法比較

7.4 Java示例:Dijkstra算法

7.5 習題

基礎題

創新題

程序設計

7.6 本章註記

第8章 網絡流和匹配

8.1 流和割

8.1.1 流網絡

8.1.2 割

8.2 最大流

8.2.1 剩余容量和增大路徑

8.2.2 Ford-Fulkerson算法

8.2.3 Ford-Fulkerson算法分析

8.2.4 Edmonds-Karp算法

8.3 最大二分匹配

8.4 最小代價流

8.4.1 增大回路

8.4.2 連續最短路徑

8.4.3 修改權值

8.5 Java示例:最小代價流

8.6 習題

基礎題

創新題

程序設計

8.7 本章註記

第三部分 因特網算法

第9章 文本處理

9.1 串和模式匹配算法

9.1.1 串操作

9.1.2 蠻力模式匹配

9.1.3 Boyer-Moore算法

9.1.4 Knuth-Morris-Pratt算法

9.2 trie

9.2.1 標準trie

9.2.2 壓縮trie

9.2.3 後綴trie

9.2.4 搜索引擎

9.3 文本壓縮

9.3.1 赫夫曼編碼算法

9.3.2 修正貪心法

9.4 文本相似性測試

9.4.1 最長公***子序列問題

9.4.2 應用動態規劃求解LCS問題

9.5 習題

基礎題

創新題

程序設計

9.6 本章註記

第10章 數論和密碼學

10.1 與數有關的基本算法

10.1.1 基本數論的壹些事實

10.1.2 歐幾裏得GCD算法

10.1.3 模運算

10.1.4 模指數運算

10.1.5 模乘法逆元

10.1.6 素性測試

10.2 密碼計算

10.2.1 對稱加密模式

10.2.2 公鑰密碼系統

10.2.3 RSA密碼系統

10.2.4 El Gamal密碼系統

10.3 信息安全算法和協議

10.3.1 單向散列函數

10.3.2 時間戳和認證字典

10.3.3 硬幣拋擲和比特承諾

10.3.4 安全電子傳輸(SET)協議

10.3.5 密鑰分發和交換

10.4 快速傅裏葉變換

10.4.1 本原單位根

10.4.2 離散傅裏葉變換

10.4.3 快速傅裏葉變換算法

10.4.4 大整數相乘

10.5 Java示例:FFT

10.6 習題

基礎題

創新題

程序設計

10.7 本章註記

第11章 網絡算法

11.1 復雜性測度和模型

11.1.1 網絡協議棧

11.1.2 消息傳遞模型

11.1.3 網絡算法的復雜性測度

11.2 基本分布式算法

11.2.1 環網上的領導人選舉

11.2.2 樹網上的領導人選舉

11.2.3 廣度優先查找

11.2.4 最小生成樹

11.3 廣播路由和單播路由

11.3.1 廣播路由的洪泛算法

11.3.2 單播路由的距離矢量算法

11.3.3 單播路由的鏈路-狀態算法

11.4 多播路由

11.4.1 逆向路徑轉發

11.4.2 中心樹

11.4.3 Steiner樹

11.5 習題

基礎題

創新題

程序設計

11.6 本章註記

第四部分 其他主題

第12章 計算幾何

12.1 範圍樹

12.1.1 壹維範圍查找

12.1.2 二維範圍查找

12.2 優先查找樹

..