可视化的数据结构和算法
还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学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 版本演示)
(全文完)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《可视化的数据结构和算法》的相关评论
排序的那些实在看不出有什么用
没感觉直观多少,严蔚敏版数据结构自带的演示程序就不错
相对而言还是不错的
这些都是基础,要学算法的话,去做ACM
这种东西最适合新手学习了,当时看《数据结构》就感觉特别枯燥,要是那时候就有这玩意就好了~
看这些可视化的东西,比自己空想去理解,轻松多了
这东西用Jscex做一个应该很容易,只是有英文了为什么还要有中文?
j觉得并查集挺有意思的
刚好正在学算法和数据结构..简直就是专门为我准备的一样.. 这些东西很直观了… . 感谢酷壳整理
很有意思啊,以前想自己实现的,可是只是想想而已,哎
usfca的不支持360浏览器,难怪半天不出来。ff4下没问题
我08年毕业的,好像在我读大学的时候,学校是有类似的数据结构教学课件的,不过效果怎样就忘了。
数据结构~刚学程序的时候很喜欢研究这个
这人我听说过,他得了奖还说“我只是个普通的程序员”
演示下载不了,IE8右下角提示脚本错误(网页上有错误)
很遗憾,经反复测试,红黑树的flash版本有问题(其它的暂还没发现问题)http://www.cs.usfca.edu/~galles/visualization/flash.html。
如依次往插入这个序列,15,1,9,2,0,12,16,7,11,13,17,14,然后再删除根节点9,严重的错误就出来了。上面的版本只是简单的一个步骤用7代替9,成为根节点,然后把7节点着为黑色。树却没有后续调整,完全不平衡。
特此,把问题指出来,希望,这个红黑树的错误flash版本不致误导更多的人,同时,问题是朋友鑫提出的)。
我会记住这个问题,如果解决了,再发布在博客里。
后续:鑫指出:avl树也有问题。
July、结构之法 算法之道 博主。
2011.05.07。
@July(结构之法算法之道博主)
修正:红黑树并非严格意义上的二叉平衡树,它只要满足所具备的五点性质即可。所以,各位可忽略本人的上述言论。
国内数据结构也有可视化的算法 鉴定完毕 就是我没学好。。。。
国内是不可能把这些东西讲的生动透彻的。。。
相当好啊。。系统的复习了一下。。
国内是不可能有这个东西的。
这话说的,严蔚敏教材光盘里自带的有不少呢@Laycher
`动态编程`? Dynamic Programming 大陆一般翻译为`动态规划`吧。
哥啊,你再不更新,我就不来了.
sorry 没有更新,我上周六人肉翻墙出国了,在这边比较忙,时间也不是很多。
到美国了吗?
面试人了吗?是不是还有人等你面试?什么时候回国?
so cool
不错,谢谢陈哥整理的好资料 :)
为什么我打开来什么都没有啊?是浏览器的问题么
good job!
avltree的地址有问题,应该是AVLtree.html,而不是AVLTree.html
吴伟民写的数据结构最后面有个介绍可视化排序的软件,可以可视化排序过程,最新版还支持3d可视化排序。很早就有了,可惜很多人都不看最后那介绍的地方。关于软件可以查看吴伟民【广东工业大学–计算机学院】副院长。其可视化排序软件支持c、pascal,java等。
http://mover.sinaapp.com/Algorithms.html 个人把原网站拿过来翻译了一下,用Python自建了一个站点供大家学习
今天看红黑树,想作图,又不想用ps。这个作图的确很不错,除了图丑了点。大学时,好像有严蔚敏的那个演示程序,不过很老了。对于作图还有个graphviz,这个也可以。
这是我们学校…