還記得之前釋出過的那個關於視覺化排序的文章嗎?在網上又看到了一箇舊金山大學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 比較式排序
[LIST] - Bubble Sort 氣泡排序
- Selection Sort 選擇排序
- Insertion Sort 插入排序
- Shell Sort 希爾排序
- Merge Sort 歸併排序
- Quck Sort 快速排序
[*]Bucket Sort 桶排序
[*]Counting Sort 計數排序
[*]Radix Sort 基數排序
[/list] 堆資料結構
- 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 版本演示)