微信号:crossincode

介绍:每天5分钟,学点简单的编程,用新的思维方式看世界.【声明:公众号搜出的另一个同名是山寨货】

你“听”过这些经典排序算法吗?

2018-05-15 14:00 crossin 周鑫鑫

算法是编程知识体系中的重要部分。当你已经掌握了一些编程基础之后,必然需要了解算法相关的知识,才能可以写出效率更高的代码。而排序算法又是算法中非常基础的内容。


我们用 Python 实现了一个可视(听)化的排序算法演示程序,给你们直观地展示一下 冒泡排序、选择排序、插入排序、快速排序、归并排序5种经典排序算法的执行过程。


记得打开你的声音,片尾有小彩蛋

此程序的想法来源于一个国外视频:

https://www.bilibili.com/video/av685670


主体代码和可视化部分由 @Provin.M 实现,我在其基础上增加了音效。


可视化部分通过著名的 Python 图表库 matplotlib 中的 animation 实现。音效则是使用了 pyaudio 库。


这几种都是经典的排序算法,关于其实现及算法复杂度的讨论在几乎每一本算法书籍上都有提及,网上直接搜索一下也可以找出无数文章,因此本篇中不再一一赘述。如果大家对算法感兴趣,可以在留言区说下,之后也会考虑写一些算法方面的内容。


代码已上传 github。如果你对排序算法还不熟悉,可以尝试修改下代码里的排序数据、执行速度等参数,观察不同排序算法的过程和效率,以便于对这些排序算法的理解。而如果你已经对算法有一定了解,则可以考虑在此框架上增加更多的算法演示。


获取代码,请在公众号 Crossin的编程教室 里回复关键字:排序




  • 如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

  • 代码问题可在论坛 bbs.crossincode.com 上发帖提问


推荐阅读:

朋友圈 | 电影票 | 百万关注 | 技术宅 | 火车票 | 单词表 | 押韵工具 | 新手建议 | 就业 | 知乎



欢迎加入

Crossin的编程教室

crossincode.com


  请把我们分享给身边爱学习的小伙伴 :)  

点击“阅读原文”,查看更多学习资源

 
Crossin的编程教室 更多文章 喜大普奔!Django官方文档终于出中文版了 在知乎上学 Python - 入门篇 Python 向人工智能方向发展的技能树 [测试]一道分歧很大的数学题 【每周一坑】蜥蜴流感与贝叶斯定理
猜您喜欢 RxJava之初体验 任务分发系统-Qcmd-http详解 WWDC 观后感 一个Java垃圾回收日志的分析案例 月薪多少最幸福,离你有多远?