動畫算法與數據結構
[日]渡部有隆, [俄]尼古拉·米連科夫
相關主題
商品描述
本書是一本借助演示動畫來講解算法和數據結構的入門書。書中首先介紹閱讀本書所需的最低限度的編程知識和基本概念。然後針對各個算法和數據結構,在指出其解決的問題後,通過空間結構、數據、時間結構(算法流程)、計算4個方面詳細講解。最後介紹相關的偽代碼和應用示例。本書涉及的算法與數據結構較為全面,通過基於動畫的可視化、詳細的介紹和偽代碼三方面進行講解,幫助讀者直觀掌握各算法和數據結構的動作原理。
作者簡介
渡部有隆,出生于1979年,计算机理工学博士。日本会津大学计算机理工学部信息系统学部门副教授。专业领域为可视化编程语言。AIZU ONLINE JUDGE开发者。Mirenkov Nikolay,历任会津大学教授、会津大学副校长、会津大学特聘荣誉教授。
目錄大綱
第 1章 編程的基本要素 3
1.1 變量和賦值運算 4
1.2 基本運算 6
1.3 控制結構 8
1.4 函數 12
第 2章 編程的應用要素 15
2.1 命名規則 16
2.2 區間的表示方法 17
2.3 遞歸 18
2.4 類19
2.5 指針 21
第3章 算法設計的準備 25
3.1 大O表示法 26
3.2 問題的約束條件 28
第4章 空間結構概述31
4.1 空間結構:概述 32
4.2 數組 34
4.3 圖35
4.4 樹37
第5章 數組 39
5.1 單節點40
5.2 一維數組 41
5.3 二維數組 42
第6章 樹 43
6.1 二叉樹44
6.2 完全二叉樹46
6.3 滿二叉樹 48
6.4 森林 49
第7章 圖 5
7.1 無向圖52
7.2 有向圖54
第8章 點群 55
8.1 二維點群 56
第9章 動態結構 57
9.1 鏈表 58
9.2 動態二叉樹60
第 10章 入門Getting Started 63
10.1 交換 64
10.2 最大值67
10.3 交換排序 71
第 11章 對數組的基本查詢 Basic Query on Array 75
11.1 和76
11.2 最小值80
11.3 最小值的位置 84
第 12章 搜索Search 89
12.1 線性搜索 90
12.2 二分搜索 93
第 13章 對數組元素進行排序Rearranging Array Elements 99
13.1 反轉 100
13.2 插入 103
13.3 合並 108
13.4 分割 113
第 14章 慢速排序Slow Sort 119
14.1 冒泡排序 120
14.2 選擇排序 125
14.3 插入排序 129
第 15章 與整數相關的算法Integer Algorithms 133
15.1 埃拉托色尼篩法 134
15.2 歐幾里得算法 138
第 16章 基本數據結構 1Elementary Data Structure 1 143
16.1 棧144
16.2 隊列 148
第 17章 對數組的計算Computation on Array 153
17.1 累積和154
17.2 一維累積和158
17.3 二維累積和163
第 18章 堆 Heap 169
18.1 向上調整堆170
18.2 向下調整堆174
18.3 構建堆178
18.4 優先隊列 183
第 19章 二叉樹 Binary Tree 189
19.1 前序遍歷 190
19.2 後序遍歷 194
19.3 中序遍歷 198
19.4 層序遍歷 202
第 20章 排序 Sort 207
20.1 合並排序 208
20.2 快速排序 213
20.3 堆排序217
20.4 計數排序 222
20.5 謝爾排序 227
第 21章 基本數據結構 2Elementary Data Structure 2 235
21.1 雙向鏈表 236
21.2 哈希表242
第 22章 廣度優先搜索Breadth First Search 249
22.1 廣度優先搜索 250
22.2 使用BFS計算最短距離255
22.3 Kahn算法259
第 23章 深度優先搜索Depth First Search 265
23.1 深度優先搜索 266
23.2 使用DFS進行連通分量分解 273
23.3 使用DFS進行環檢測 277
23.4 Tarjan算法283
第 24章 合並查找樹Union-Find Tree 287
24.1 按秩合並 288
24.2 路徑壓縮 292
24.3 合並查找樹295
第 25章 求最小生成樹的算法Algorithms for MST 303
25.1 普里姆算法304
25.2 克魯斯卡爾算法 309
第 26章 求最短路徑的算法Algorithms for Shortest Path 315
26.1 迪傑斯特拉算法 316
26.2 迪傑斯特拉算法(優先隊列)321
26.3 貝爾曼-福特算法328
26.4 Floyd-Warshall算法334
第 27章 計算幾何學Computational Geometry 339
27.1 禮品包裝算法 340
27.2 Graham掃描法 345
27.3 安德魯算法352
第 28章 線段樹Segment Tree 361
28.1 線段樹:RMQ 362
28.2 線段樹:RSQ370
第 29章 搜索樹Search Tree 375
29.1 二叉查找樹376
29.2 旋轉 381
29.3 樹堆 385
參考文獻 391