美國舊金山大學計算機科學係(Computer Science,University of San Francisco)的 David Galles 教授
將一些常用的數據結構和算法進行了可視化處理,也就是將數據結構和算法做成了動畫效果,這給我們提供了
一種能夠直觀理解數據結構和算法原理的方法。下文將會給出David Galles 教授已經可視化的數據結構和算
法的鏈接,(原始網址如下:http://www.cs.usfca.edu/~galles/visualization/Algorithms.html),可以看到,常用
的數據結構和算法大部分都在這裏了,裏麵的圖示也非常形象,不得不說老外做的工作很給力啊!需要說明的是,
可能是原始網站沒有繼續維護的緣故,下麵列舉的數據結構和算法的圖示頁麵有少部分無法打開;另外,建議使
用火狐等瀏覽器打開圖示頁麵,我用其他瀏覽器的時候出現了一些小問題。
數據結構和算法的可視化(數據結構和算法的動畫)鏈接如下:
- Basics 基礎
- Stack: Array Implementation 棧的數組實現
- Stack: Linked List Implementation 棧的鏈式實現
- Queues: Array Implementation 隊列的數組實現
- Queues: Linked List Implementation 隊列的鏈式實現
- Lists: Array Implementation (availabel in java version) 鏈表的數組實現
- Lists: Linked List Implementation (availabel in java version) 鏈表的鏈式實現
- Indexing 索引
- Sorting 排序
- Comparison Sorting 比較排序
- Bubble Sort 冒泡排序
- Selection Sort選擇排序
- Insertion Sort 插入排序
- Shell Sort 希爾排序
- Merge Sort 歸並排序
- Quck Sort 快速排序
- Bucket Sort 桶排序
- Counting Sort 計數排序
- Radix Sort 基數排序
- Comparison Sorting 比較排序
- Heap-like Data Structures 堆式數據結構
- Graph Algorithms 圖算法
- Breadth-First Search 廣度優先搜索
- Depth-First Search 深度優先搜索
- Connected Components 連通分支
- Dijkstra’s Shortest Path 地傑斯特拉最短路徑
- Prim’s Minimum Cost Spanning Tree 普利姆最小生成樹
- Topological Sort (available in flash and java versions) 拓撲排序
- Floyd-Warshall (all pairs shortest paths) (available in flash and java versions)弗洛伊德,所有節點間最短路徑
- Kruskals Minimum Cost Spanning Tree Algorithm (available in flash and java versions)克魯斯卡爾最小生成樹
- Dynamic Programming 動態規劃
- Calculating nth Fibonacci number (available in java version) 計算斐波那契數列值
- Others …其他
- Disjoint Sets 不相交集,一般也叫並查集
- Huffman Coding (available in java version)哈弗曼編碼