还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学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 版本演示)