演算法課程目錄
㈠ 演算法設計與分析基礎的目錄
第1章 緒論
1.1 什麼來是演算法
1.2 演算法問題求自解基礎
1.3 重要的問題類型
1.4 基本數據結構
小結
第2章 演算法效率分析基礎
2.1 分析框架
2.2 漸進符號和基本效率類型
2.3 非遞歸演算法的數學分析
2.4 遞歸演算法的數學分析
2.5 例題:斐波那
2.6 演算法的經驗分析
2.7 演算法可視法
小結
第3章 蠻力法
3.1 選擇排序和冒泡排序
3.2 順序查找和蠻力字元串匹配
3.3 最近對和凸包問題的蠻力演算法
3.4 窮舉查找
小結
第4章 分治法
4.1 合並排序
4.2 快速排序
4.3 折半查找
4.4 二叉樹遍歷及其相關特性
4.5 大整數乘法和Strassen矩陣乘法
4.6 用分治法解最近對問題和凸包問題
小結
第5章 減治法
5.1 插入排序
5.2 深度優先查找和廣度優先查找
……
第6章 變治法
第7章 時空權衡
第8章 動態規劃
第9章 貪婪技術
第10章 迭代改進
第11章 演算法能力的極限
第12章 超越演算法能力的極限
跋
附錄
習題提示
參考文獻
㈡ 演算法導論的作品目錄
目錄(Table of Contents)
前言(Preface)
第一部分(Part I) 基礎(Foundations)
第一章 計算中演算法的角色(The Role of Algorithms in Computing)
第二章 開始(Getting Started)
第三章 函數的增長率(Growth of Functions)
第四章 遞歸(Recurrences)
第五章 概率分析與隨機化演算法(Probabilistic Analysis and Randomized Algorithms)
第二部分(Part II) 排序與順序統計(Sorting and Order Statistics)
第六章 堆排序(Heapsort)
第七章快速排序(Quicksort)
第八章 線性時間中的排序(Sorting in Linear Time)
第九章 中值與順序統計(Medians and Order Statistics)
第三部分(Part III) 數據結構(Data Structures)
第十章 基本的數據結構(Elementary Data Structures)
第十一章 散列表(Hash Tables)
第十二章 二叉查找樹(Binary Search Trees)
第十三章 紅-黑樹(Red-Black Trees)
第十四章 擴充的數據結構(Augmenting Data Structures)
第四部分(Part IV) 高級的設計與分析技術(Advanced Design and Analysis Techniques)
第十五章 動態規劃(Dynamic Programming)
第十六章 貪婪演算法(Greedy Algorithms)
第十七章 分攤分析(Amortized Analysis)
第五部分(Part V) 高級的數據結構(Advanced Data Structures)
第十八章 B-樹(B-Trees)
第十九章 二項式堆(Binomial Heaps)
第二十章 斐波納契堆(Fibonacci Heaps)
第二十一章 不相交集的數據結構(Data Structures for Disjoint Sets)
第六部分(Part VI) 圖演算法(Graph Algorithms)
第二十二章 基本的圖演算法(Elementary Graph Algorithms)
第二十三章 最小生成樹(Minimum Spanning Trees)
第二十四章單源最短路徑(Single-Source Shortest Paths)
第二十五章 全對的最短路徑(All-Pairs Shortest Paths)
第二十六章 最大流(Maximum Flow)
第七部分(Part VII) 精選的主題(Selected Topics)
第二十七章 排序網路(Sorting Networks)
第二十八章矩陣運算(Matrix Operations)
第二十九章 線性規劃(Linear Programming)
第三十章 多項式與快速傅里葉變換(Polynomials and the FFT)
第三十一章 數論演算法(Number-Theoretic Algorithms)
第三十二章 字元串匹配(String Matching)
第三十三章 計算幾何學(Computational Geometry)
第三十四章 NP-完備性(NP-Completeness)
第三十五章 近似演算法(Approximation Algorithms)
第八部分(Part VIII) 附錄:數學背景(Mathematical Background)
附錄A 求和(Summations)
附錄B 集合,等等。(Sets, Etc.)
附錄C 計數與概率(Counting and Probability)
參考文獻(Bibliography)
索引(Index)
㈢ 演算法技術手冊的圖書目錄
Part 1
1 Algorithms Matter
Understand the Problem
Experiment if Necessary
Algorithms to the Rescue
Side Story
The Moral of the Story
References
2The Mathematics of Algorithms
Size of a Problem Instance
Rate of Growth of Functions
Analysis in the Best, Average, and Worst Cases.
Performance Families
Mix of Operations
Benchmark Operatxons
One Final Point
References
3Patterns and Domains
Patterns: A Communication Language
Algorithm Pattern Format
Pseudocode Pattern Format
Design Format
Empirical Evaluation Format
Domains and Algorithms
Floating-Point Computations
Manual Memory Allocation
Choosing a Programming Language
References
Part 2
4Sorting Algorithms
Overview
Insertion Sort
Median Sort
Quicksort
Selection Sort
Heap Sort
Counting Sort
Bucket Sort
Criteria for Choosing a Sorting Algorithm
References
5Searching
Overview
Sequential Search
Binary Search
Hash-based Search
Binary Tree Search
6 GraphAIgorithms
Overview
Depth-First Search
Breadth-First Search
Single-Source Shortest Path
All Pairs Shortest Path
Minimum Spanning Tree Algorithms
References
7 Path Finding in AI
Overview
Depth-First Search
Breadth-First Search
A'Search
Comparison
Minimax
NegMax
AlphaBeta
References
8Network Flow Algorithms
Overview
Maximum Flow
Bipartite Matching
Reflections on Augmenting Paths
Minimum Cost Flow
Transshipment
Transportation
Assignment
Linear Programming
References
9 Computational Geometry
Overview
Convex Hull Scan
LineSweep
Nearest Neighbor Queries
Range Queries
References
Part 3
10When All Else Fails
Variations on a Theme
Approximation Algorithms
Offline Algorithms
Parallel Algorithms
Randomized Algorithms
Algorithms That Can Be Wrong, but with Diminishing Probability References
11Epilogue
Overview
Principle: Know Your Data
Principle: Decompose the Problem into Smaller Problems
Principle: Choose the Right Data Structure
Principle: Add Storage to Increase Performance
Principle: If No Solution Is Evident, Construct a Search
Principle: If No Solution Is Evident, Rece Your Problem to
Another Problem That Has a Solution
Principle: Writing Algorithms Is Hard——Testing Algorithms Is Harder
Part 4
Appendix: Benchmarking
Index
……
㈣ 演算法設計的目錄
第1章引言:某些典型的問題
1.1第一個問題:穩定匹配
1.2五個典型問題
帶解答的練習
練習
注釋和進一步的閱讀
第2章演算法分析基礎
2.1計算可解性
2.2增長的漸近階
2.3用表和數組實現穩定匹配演算法
2.4一般運行時間的概述
2.5更復雜的數據結構:優先隊列
帶解答的練習
練習
注釋和進一步的閱讀
第3章圖
3.1基本定義與應用
3.2圖的連通性與圖的遍歷
3.3用優先隊列與棧實現圖的遍歷
3.4二分性測試:寬度優先搜索的一個應用
3.5有向圖中的連通性
3.6有向無圈圖與拓撲排序
帶解答的練習
練習
注釋和進一步的閱讀
第4章貪心演算法
4.1區間調度:貪心演算法領先
4.2最小延遲調度:一個交換論證
4.3最優高速緩存:一個更復雜的交換論證
4.4一個圖的最短路徑
4.5最小生成樹問題
4.6實現Kruskal演算法:Unoin-Find數據結構
4.7聚類
4.8Huffman碼與數據壓縮
4.9最小費用有向樹:一個多階段貪心
帶解答的練習
練習
注釋和進一步的閱讀
第5章分治策略
5.1第一個遞推式:歸並排序演算法
5.2更多的遞推關系
5.3計數逆序
5.4找最接鄰近的點對
5.5整數乘法
5.6卷積與快速傅里葉變換
帶解答的練習
練習
注釋和進一步的閱讀
第6章動態規劃
6.1帶權的區間調度:一個遞歸過程
6.2動態規劃原理:備忘錄或者子問題迭代
6.3分段的最小二乘:多重選擇
6.4子集和與背包:加一個變數
6.5RNA二級結構:在區間上的動態規劃
6.6序列比對
6.7通過分治策略在線性空間的序列比對
6.8圖中的最短路徑
6.9最短路徑和距離向量協議
6.10圖中的負圈
帶解答的練習
練習
注釋和進一步的閱讀
第7章網路流
第8章Ng與計算的難解性
第9章一個超出
第10章擴展易解性的界限
第11章近似演算法
第12章局部搜索
第13章隨機演算法
後記:永不停止運行的演算法
索引
㈤ 演算法競賽入門經典的圖書目錄
純碎介紹語言,幾乎不涉及演算法,但逐步引入一些工程性的東西,如測試、斷言、偽代碼和迭代開發等。
第1章 程序設計入門1
1.1 算術表達式
1.2變數及其輸入
1.3順序結構程序設計
1.4分支結構程序設計
1.5 小結與習題
第2章循環結構程序設計16
2.1for循環
2.2循環結構程序設計
2.3文件操作
2.4小結與習題
第3章 數組和字元串33
3.1 數組
3.2 字元數組
3.3 最長迴文子串
3.4 小結與習題
第4章 函數和遞歸51
4.1 數學函數
4.2 地址和指針
4.3 遞歸
4.4 小結與習題 在介紹演算法的同時繼續強化語言,補充了第1部分沒有涉及的語言特性,如位運算、動態內存管理等,並延續第一部分的風格,在需要時引入更多的思想和技巧。學習完前兩部分的讀者應當可以完成相當數量的練習題。
第5章 基礎題目選解69
5.1字元串
5.2 高精度運算
5.3排序與檢索
5.4 數學基礎
5.5 訓練參考
第6章 數據結構基礎89
6.1棧和隊列
6.2鏈表
6.3二叉樹
6.4 圖
6.5 訓練參考
第7章 暴力求解法114
7.1 簡單枚舉
7.2枚舉排列
7.3子集生成
7.4 回溯法
7.5 隱式圖搜索
7.6 訓練參考
第8章 高效演算法設計138
8.1 演算法分析初步
8.2 再談排序與檢索
8.3遞歸與分治
8.4分支
8.5 訓練參考 涉及競賽中常用的其他知識點和技巧。和前兩部分相比,第3部分涉及的內容更加廣泛,其中還包括一些難以理解的「學術內容」,但其實這些才是演算法的精髓。
第9章 動態規劃初步158
9.1 數字三角形
9.2DAG上的動態規劃
9.3 0-1背包問題
9.4 遞歸結構中的動態規劃
9.5 集合上的動態規劃
9.6 訓練參考
第10章 數學概念與方法176
10.1數論初步
10.2排列與組合
10.3遞推關系
10.4 訓練參考
第11章 圖論模型與演算法196
11.1 再談樹
11.2 最短路問題
11.3網路流初步
11.4 進一步學習的參考
11.5 訓練參考 介紹開發環境和開發方法,雖然它們和語言、演算法的關系都不大,卻往往能極大地影響選手的成績。
㈥ 演算法設計與分析的作品目錄
第1章 入門
第2章 漸近符號
第3章 演算法分析方法
第4章 遞歸
第5章 分治演算法
第6章 動態規劃
第7章 貪心演算法
第8章 圖演算法
第9章 網路流與匹配
第10章 線性規劃
第11章 NP完全理論
第12章 回溯
第13章 分支限界
第14章 啟發式搜索
第15章 數論
第16章 計算幾何
參考文獻
㈦ 演算法與數據結構的圖書目錄
第一部分基本概念
第1章數據結構基礎
1.1問題求解分析
1.2數據結構
1.3數據結構的分類
1.4數據的四種基本存儲方法
1.5數據結構三方面的關系
習題
第2章演算法及演算法分析基礎
2.1演算法的基本概念
2.2演算法的描述
2.3演算法分析方法
2.4程序語言的基本語句與基本結構
2.5數組與結構
2.6抽象數據類型的表示與定義
習題
第二部分簡單數據結構
第3章線性表
3.1線性表的定義
3.2線性表的運算
3.3線性表的順序存儲結構及實現
3.3.1 線性表的順序存儲結構
3.3.2順序表的實現
3.4線性表的鏈式存儲結構及實現
3.4.1單鏈表
3.4.2循環鏈袁
3.4.3雙向鏈表
3.4.4靜態鏈表
3.4.5順序表和鏈表的比較
3.5線性表的應用
習題
第4章棧和隊列
4.1 棧
4.1.1 問題的提出
4.1.2定義及其操作
4.1.3棧的存儲結構及實現
4.1.4棧的應用舉例:表達式求值
4.2 隊列
4.2.1 問題的提出
4.2.2隊列的定義及操作
4.2.3隊列的存儲結構及實現
4.2.4隊列的應用舉例
習題
第5章矩陣和廣義表
5.1矩陣的存儲
5.2特殊矩陣
5.3稀疏矩陣
5.4廣義表
習題
第三部分復雜數據結構
第6章二叉樹和樹
6.1 二叉樹的定義和性質
6.1.1二叉樹的定義及相關術語
6.1.2特殊二叉樹
6.1.3二叉樹的性質
6.2二叉樹的存儲結構
6.2.1 二叉樹的順序存儲表示
6.2.2二叉樹的鏈式存儲表示
6.3二叉樹的遍歷
6.3.1 問題的提出
6.3.2二叉樹的遍歷演算法
6.3.3二叉樹遍歷的非遞歸實現
6.3.4遍歷演算法的應用
6.4二叉樹的線索化
6.4.1 線索二叉樹的定義
6.4.2線索二叉樹的結構
6.4.3二叉樹的線索化演算法
6.4.4線索二叉樹基本操作的實現
6.5二叉樹的應用——哈夫曼樹
……
第7章圖
第8章散列結構
第9章集合結構
第四部分演算法與數據結構應用
㈧ 演算法設計技巧與分析的圖書目錄
第一部分 基本概念和演算法導引
第1章 演算法分析基本概念
第2章 數學預備知識
第3章 數據結構
第4章 堆和不相交集數據結構
第二部分 基於遞歸的技術
第5章 歸納法
第6章 分治
第7章 動態規劃
第三部分 最先割技術
第8章 貪心演算法
第9章 圖的遍歷
第10章 NP完全問題
第11章 計算復雜性引論
第12章 下界
第13章 回溯法
第14章 隨機演算法
第15章 近似演算法
第16章 網路流
第17章 匹配
第18章 幾何掃描
第19章 Voronoi圖解