算法基礎(2017年機械工業出版社出版的圖書)

算法基礎(2017年機械工業出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《算法基礎》是2017年機械工業出版社出版的圖書,作者是羅德·史蒂芬斯(Rod Stephens),該書結合了理論與實現,在講授算法理論的同時也通過實例講授了算法。

基本介紹

  • 書名:算法基礎
  • 作者:羅德·史蒂芬斯(Rod Stephens)
  • 出版社:機械工業出版社
  • ISBN:9787111560920
內容簡介,圖書目錄,作者簡介,

內容簡介

本書的撰寫有機結合了理論與實現,在講授算法理論的同時也通過C#實例講授了算法的實現。通過描述並分析一些重要的傳統算法,從而理解它們並且了解每一個算法在什麼時候使用較為適合,通俗易懂地教授讀者創造自己的算法的技巧。這些技巧讓讀者能從不同的角度看問題,建立有用的方法工具,從而解決實際問題,抑或從容面對面試難題。本書適合當作“算法設計與分析”和“數據結構與算法”兩門課程的教材或參考書使用。特別是本書還融入和面試相關的內容,因此適合作為算法相關工作面試的參考資料。

圖書目錄

目 錄
Essential Algorithms: A Practical Approach to Computer Algorithms
出版者的話
譯者序
前言
第1章 算法基礎知識1
1.1 方法1
1.2 算法和數據結構2
1.3 偽代碼2
1.4 算法的特點4
1.4.1 大O符號5
1.4.2 常見的運行時間函式7
1.4.3 可視化函式12
1.5實際因素12
1.6 總結13
練習13
第2章 數值算法16
2.1 隨機化數據16
2.1.1 隨機數生成16
2.1.2 隨機化數組20
2.1.3 生成不均勻分布21
2.2 尋找公約數21
2.3 求冪運算23
2.4 有關素數的運算24
2.4.1 尋找素數因子24
2.4.2 尋找素數26
2.4.3素性測試27
2.5 進行數值積分28
2.5.1 矩形規則28
2.5.2梯形規則29
2.5.3 自適應求積30
2.5.4 蒙特卡羅積分32
2.6 查找零32
2.7 總結34
練習34
第3章 鍊表36
3.1 基本概念36
3.2 單鍊表37
3.2.1 遍歷鍊表37
3.2.2 查找單元格37
3.2.3 使用哨兵38
3.2.4 在開頭添加單元格39
3.2.5 在結尾添加單元格40
3.2.6 在某個單元格後插入單元格40
3.2.7 刪除單元格41
3.3 雙向鍊表42
3.4 有序鍊表43
3.5 鍊表算法44
3.5.1 複製鍊表44
3.5.2 鍊表的插入排序45
3.6 鍊表的選擇排序46
3.7 多執行緒鍊表47
3.8 循環鍊表48
3.8.1 標記單元格49
3.8.2 使用散列表50
3.8.3 鍊表回溯51
3.8.4 反轉鍊表51
3.8.5 烏龜和兔子53
3.8.6 雙向鍊表中的循環問題55
3.9 總結55
練習55
第4章 數組57
4.1 基本概念57
4.2 一維數組58
4.2.1 查找元素58
4.2.2 查找值、小值、平均值59
4.2.3 插入元素60
4.2.4 移除元素61
4.3 非零下界61
4.3.1 二維數組61
4.3.2 多維數組62
4.4 三角形數組64
4.5 稀疏數組66
4.5.1 找到行或列67
4.5.2 獲取值68
4.5.3 設定值69
4.5.4 刪除值71
4.6 矩陣72
4.7 總結74
練習74
第5章 棧和佇列76
5.1 棧76
5.1.1 棧的鍊表實現76
5.1.2 棧的數組實現77
5.1.3 雙向棧78
5.1.4 棧的算法79
5.2 佇列84
5.2.1 佇列的鍊表實現84
5.2.2 佇列的數組實現85
5.2.3 專用佇列86
5.3 總結87
練習87
第6章 排序89
6.1 時間複雜度為O(N2)的算法89
6.1.1 數組中的插入排序89
6.1.2 數組中的選擇排序90
6.1.3 冒泡排序91
6.2 時間複雜度為O(N log N)的算法93
6.2.1 堆排序93
6.2.2 快速排序98
6.2.3 歸併排序103
6.3 時間複雜度為亞O(N log N)的算法105
6.3.1 計數排序106
6.3.2 桶排序107
6.4 總結108
練習108
第7章 搜尋110
7.1 線性搜尋110
7.2 二分搜尋111
7.3 插值搜尋112
7.4 總結113
練習113
第8章 散列表114
8.1 散列表的基礎知識114
8.2 鏈115
8.3 開放定址116
8.3.1 刪除記錄117
8.3.2 線性探測118
8.3.3 二次探測119
8.3.4 偽隨機探測120
8.3.5 雙散列120
8.3.6 有序散列121
8.4 總結122
練習123
第9章 遞歸125
9.1 基礎算法125
9.1.1 階乘125
9.1.2 斐波那契數127
9.1.3 漢諾塔128
9.2 圖算法130
9.2.1 科赫曲線130
9.2.2 希爾伯特曲線131
9.2.3 謝爾賓斯基曲線132
9.2.4 墊片134
9.3 回溯算法134
9.3.1 八皇后問題136
9.3.2 騎士巡遊138
9.4 選擇與排列140
9.4.1 循環選擇140
9.4.2 重複選擇141
9.4.3 不重複選擇142
9.4.4 元素可重複的排列143
9.4.5 元素不重複的排列144
9.5 消去遞歸145
9.5.1 尾遞歸的消除145
9.5.2 存儲中間值146
9.5.3 一般遞歸的消除148
9.6 總結150
練習151
第10章 樹153
10.1 樹的術語153
10.2 二叉樹屬性155
10.3 樹的表示157
10.3.1 建立樹的通用方法157
10.3.2 構造完全樹159
10.4 樹的遍歷160
10.4.1 前序遍歷160
10.4.2 中序遍歷162
10.4.3 後序遍歷163
10.4.4 深度優先遍歷164
10.4.5 遍歷的運行時間164
10.5 排序樹 165
10.5.1 添加結點165
10.5.2 查找結點166
10.5.3 刪除結點167
10.6 線索樹168
10.6.1 建立線索樹169
10.6.2 使用線索樹171
10.7 特化樹算法172
10.7.1 動物遊戲172
10.7.2 表達式求值173
10.7.3 四叉樹175
10.7.4 Trie樹179
10.8 總結182
練習182
第11章 平衡樹185
11.1 AVL樹185
11.1.1 添加值185
11.1.2 刪除值187
11.2 2-3樹187
11.2.1 添加值188
11.2.2 刪除值189
11.3 B樹191
11.3.1 添加值191
11.3.2 刪除值192
11.4 平衡樹變體193
11.4.1 自上而下的B樹193
11.4.2 B 樹193
11.5 總結194
練習195
第12章 決策樹196
12.1 遊戲搜尋樹196
12.1.1 極小化極大值算法197
12.1.2 初始步驟和反應199
12.1.3 啟發式遊戲樹200
12.2 搜尋通用決策樹201
12.2.1 最佳化問題202
12.2.2 窮舉搜尋202
12.2.3 分支界限203
12.2.4 決策樹的啟發式搜尋205
12.2.5 其他決策樹問題209
12.3 總結212
練習195
第13章 基本網路算法214
13.1 網路術語214
13.2

作者簡介

Rod Stephens初是一名數學家,但是在麻省理工學院進修時,他喜歡上了算法和編程,並且從此以後走上了專業編程的道路。作為一位獲獎導師,他經常在各種技術大會上講演,並已寫了26本技術圖書,被翻譯為多國語言出版。

相關詞條

熱門詞條

聯絡我們