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

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

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


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

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


640.gif

640.gif



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

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

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

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

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

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


  • 如需了解视频课程及答疑群等更多服务,请号内回复 码上行动
  • 代码问题可在论坛 bbs.crossincode.com 上发帖提问

推荐阅读:

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

相关文章
|
机器学习/深度学习 存储 搜索推荐
C/C++中的经典排序算法总结
<h1 style="text-align:center">C/C++中的经典排序算法总结</h1> <p style="text-align:center"><br></p> <p>在C/C++中,有一些经典的排序算法,例如:冒泡排序、鸡尾酒排序或双向冒泡排序(改进的冒泡排序)、选择排序、直接插入排序、归并排序、快速排序、希尔排序和堆排序等等。下面对这些排序算法进行一一解析并给出示例
2618 0
|
搜索推荐 C# 存储
|
6月前
|
搜索推荐 测试技术
经典排序算法
这篇文章讨论了基数排序算法的应用,具体是如何使用基数排序对英文单词进行字典序排列,并给出了相应的程序实现和测试用例的排序结果。
|
算法 搜索推荐 C#
【算法】C#实现经典排序算法总结(附动图)
自行整理的C#常见算法笔记。
224 0
|
搜索推荐 算法 Java
经典排序算法分析(一)
排序指的是将一组对象按照特定的逻辑顺序重新排列的过程,排序的应用十分广泛,可以说是无处不在,它在商业数据处理和现代科学计算中发挥着举足轻重的作用,目前已知的应用最广泛的排序算法—快速排序,更是被誉为了 20 世纪科学和工程领域的十大算法之一。
129 0
经典排序算法分析(一)
|
存储 缓存 算法
经典排序算法分析(二)
排序指的是将一组对象按照特定的逻辑顺序重新排列的过程,排序的应用十分广泛,可以说是无处不在,它在商业数据处理和现代科学计算中发挥着举足轻重的作用,目前已知的应用最广泛的排序算法—快速排序,更是被誉为了 20 世纪科学和工程领域的十大算法之一。
137 0
经典排序算法分析(二)
|
人工智能 搜索推荐 JavaScript
经典排序算法解析(一)
经典排序算法解析
126 0
经典排序算法解析(一)
|
人工智能 搜索推荐 JavaScript
经典排序算法解析(三)
经典排序算法解析
110 0
经典排序算法解析(三)
|
人工智能 搜索推荐 算法
经典排序算法解析(四)
经典排序算法解析
121 0
经典排序算法解析(四)

热门文章

最新文章