网址:https://algorithm-visualizer.org/
进去之后的页面是程序员熟悉的码农风格:
假设我想学习冒泡排序算法,在搜索栏里输入sort,在结果列表里选择bubble sort:
点击之后,排序操作处于就绪状态,点击play开始:
此时右边的JavaScript代码像我们平时单步调试一样逐行执行,同时每一步执行后排序的效果在屏幕正中实时显示:
比单步调试更强大之处是,我们能随时回退到前面的执行结果,通过下图高亮的84/144这个柱状开关控制。144意思是这个排序全过程总共要进行144次单步执行,当前已经执行了84步。自动播放的速度也可以在下图所示的Speed开关控制。
这是非波拉契数列的生成动画:
二叉树的遍历动画:
Dijkstra迪杰斯特拉算法最短路径算法:
有了这个网站,算法学习从此不再枯燥。这个网站的源代码是完全开源的,如果你有新的算法想给全世界的编程爱好者展示,可以按照Readme.md里定义的规范,提交您的动画。
https://github.com/algorithm-visualizer/algorithm-visualizer
截至2019年3月16日,已经有14000多个赞了,顺手去点一个吧。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
一个谷歌程序员的算法学习自述 -- 在算法的路上披荆斩棘,一路有你。
《韩顺平程序员一周玩转算法的PPT、图解及笔记》是针对初学者和有一定编程基础的程序员设计的一套全面的算法学习资源。这个资料包由知名IT教育专家韩顺平老师精心制作,旨在帮助学员在短时间内理解和掌握算法的核心...
2024IDEA常用插件推荐 | 程序员必备神器2024IDEA常用插件推荐 | 程序员必备神器2024IDEA常用插件推荐 | 程序员必备神器2024IDEA常用插件推荐 | 程序员必备神器2024IDEA常用插件推荐 | 程序员必备神器2024IDEA常用...
600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员...
《程序员算法趣题——随书源码》是一个与算法相关的学习资源,包含了增井敏克著作《程序员算法趣题》中的实例代码。增井敏克是算法领域知名的专家,他的书籍通常深入浅出,旨在帮助程序员提升算法思维和解决实际问题...
在IT行业中,算法是程序员解决问题的关键工具,它们是编程的基础,能够帮助我们高效地处理数据和执行任务。本文档集合中的四个PHP文档深入探讨了...因此,对于每一个程序员来说,学习和掌握这些经典算法是非常必要的。
本书(程序员常用算法)重点关注的是实用,立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。本书作者介绍了一些有用但很少被讨论的算法,它们可用于语音查找。日期和时间例程(直到公元1年)、B树和索引...
"程序员实用算法.zip"这个压缩包很可能包含了一系列与编程相关的算法实现、解释或案例,旨在帮助程序员提升这方面的能力。以下是对这些重要算法的详细说明: 1. **排序算法**:排序是程序员最常遇到的问题,例如...
《程序员的算法趣题》是一本专门为IT从业者和有志于进入这个领域的学习者准备的算法书籍。它通过一系列有趣且富有挑战性的题目,旨在帮助读者深入理解和掌握计算机科学中的核心算法,提升解决实际问题的能力。这本书...
《程序员面试算法大全》是一本面向准备面试的程序员的重要参考资料,涵盖了广泛的算法和数据结构知识。这本书通过详细的代码实现和解题思路,帮助读者提升在面试中的表现,从而提高获得理想职位的机会。以下是对其中...
内存管理是每个C++程序员都需要面对的问题,如何合理分配和释放内存,保证程序的效率和稳定性,是衡量一个程序员专业水平的重要标准。智能指针的出现,更是为动态内存管理提供了现代化的解决方案。性能优化是提升...
游戏程序员的学习之路是一个涵盖广泛领域的探索过程,包括但不限于算法、数据结构、图形引擎、人工智能以及脚本系统。以下是一些核心的学习知识点: 首先,对于算法和数据结构的理解是基础中的基础。《数据结构(C ...
《程序员实用算法》这本书是为IT从业者,尤其是程序员量身打造的一本算法学习资料。算法在编程领域中占据着至关重要的地位,它们是解决问题、优化程序效率的关键工具。本书旨在帮助读者理解和掌握实用的算法,提升...
总之,"程序员算法面试笔试大全data structures and algorithms"是一个全面的学习资源,覆盖了程序员面试中数据结构与算法的各个方面。通过学习和实践,你可以增强自己的编程能力,为应对面试中的挑战做好充分准备。
《程序员面试经典算法题》是针对程序员在面试过程中可能会遇到的算法问题进行深入解析的一份资源。这份资料旨在帮助程序员提升算法思维,从而在技术面试中脱颖而出。通过学习和掌握这些经典算法,不仅可以提高编程...
Java常用的8大排序算法是程序员必备的技能之一,这些排序算法根据排序过程中是否需要使用额外的存储空间,可以分为内排序和外排序两大类。内排序指所有排序操作都在内存中完成,而外排序则涉及到将数据存放到外部...
《程序员实用算法书中的源码》是一本专为程序员设计的算法书籍,旨在提升程序员在实际工作中应用算法的能力。该书由(美)Andrew Binstock和John Rex合作撰写,并由陈宗斌等人翻译成中文。书中涵盖了一系列精选的...
4. 经常练习编程题目,尤其是在在线编程平台如LeetCode、HackerRank等,这些平台提供了各种难度的算法题目,能够帮助程序员在实战中提升算法能力。 5. 不断更新知识库,算法和数据结构是不断发展的领域,新的算法和...
### 程序员常用算法思路分类详解 在软件开发领域,掌握各种算法不仅能够提升程序的效率,还能解决复杂的实际问题。本文将对程序员常用的算法进行分类,并针对每种算法提供详细的解释。 #### 一、分治法(Divide-...
5.7 小结:选择一种排序算法 5.8 资源和参考资料 第6章 树 6.1 二叉树 6.1.1 树查找 6.1.2 节点插入 6.1.3 节点删除 6.1.4 二叉查找树的性能 6.1.5 AVL树 6.2 红黑树 6.3 伸展树 ...