我以前学数据结构和算法时,有些内容感觉很难懂,自己花了很多时间琢磨,最后才搞清楚。
- 数据结构和算法用语言描述的话,比较抽象,而且细节无法描述得太具体清楚。会让人疑问,到底具体怎么操作。
- 用伪代码/代码描述,过程是清晰了,但是又不好懂,时常一行关键代码会让你想得焦头烂额。
比较好的办法,就是举个例子,实际演示一遍,这样对整个算法有一个大概的认识后,可以帮助进一步理解。 但对于新手来说,按照伪代码自己动手演示,难度颇大。好在国外有好事之徒做好了演示动画,相当适合初学者学习,强烈推荐!
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
这种东西,毫无疑问,是老外整的。英文版的,应该能看懂吧?
鸟语不给力?这里还有中文的 http://coolshell.cn/articles/4671.html ,不过后面的链接错了。。
Currently, we have visualizations for the following data structures and algorithms:
- Basics
- Stack: Array Implementation
- Stack: Linked List Implementation
- Queues: Array Implementation
- Queues: Linked List Implementation
- Lists: Array Implementation (available in java version)
- Lists: Linked List Implementation (available 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
- Heap Sort
- Comparison Sorting
- Heap-like Data Structures
- Graph Algorithms
- Dynamic Programming
- Others ...
- Disjoint Sets
- Huffman Coding (available in java version)