http://coolshell.cn/articles/4671.html
還記得之前發佈過的那個關於可視化排序的文章嗎?在網上又看到了一箇舊金山大學David Galles做的各種可視化的數據結構和基本算法的主頁,網址在這裏,大家可以看看。我把這個頁面的目錄列在下面並翻譯了一下,大家可以直接點擊了。
不知道國內的教育有沒有相關的教學課件,至少在我大學的時候是沒有的。
基礎
- Stack棧: 數組實現
- Stack棧: 鏈表實現
- Queues隊列: 數組實現
- Queues隊列: 鏈表實現
- Lists列表: 數組實現 ( java 版演示)
- Lists列表: 鏈表實現 ( java 版演示)
索引
- Binary Search Trees 二叉檢索樹
- AVL Trees (平衡二叉檢索樹)
- Red-Black Trees 紅黑樹 ( flash 版本演示)
- Open Hash Tables 開放哈希表(Closed Addressing 鏈地址法)
- Closed Hash Tables 閉合哈希表 (Open Addressing 開放定址法)
- Closed Hash Tables, using buckets 使用桶
- B Trees B樹
- B+ Trees B+樹
排序
- Comparison Sorting 比較式排序
- Bubble Sort 冒泡排序
- Selection Sort 選擇排序
- Insertion Sort 插入排序
- Shell Sort 希爾排序
- Merge Sort 歸併排序
- Quck Sort 快速排序
- Bucket Sort 桶排序
- Counting Sort 計數排序
- Radix Sort 基數排序
堆數據結構
- Heaps 堆
- Binomial Queues 二項隊列
圖 算法
- Breadth-First Search 廣度優先搜索
- Depth-First Search 深度優先搜索
- Connected Components 連通性
- Dijkstra’s Shortest Path Dijkstra最短路徑
- Prim’s Minimum Cost Spanning Tree 最小生成樹
- Topological Sort 拓撲排序 ( flash 版本演示 java 版本演示)
- Floyd-Warshall 算法(解決任意兩點間的最短路徑的一種算法) (flash 版本演示 java 版本演示)
- 基於Kruskal算法的最小生成樹的構建 ( flash 版本演示 java 版本演示)
動態編程
- 計算 Fibonacci 數 ( java 版本演示)
其它…
- Disjoint Sets (MIT算法公開課中有一課討論的是這個,見網易公開課)
- Huffman Coding 哈夫曼編碼 ( java 版本演示)