美国旧金山大学计算机科学系(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)哈弗曼编码