设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 9827|回复: 2
打印 上一主题 下一主题

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

[复制链接]

169

主题

1

好友

733

积分

版主

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2018-6-2 00:22:22 |只看该作者 |正序浏览

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

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

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

使用道具 举报

169

主题

1

好友

733

积分

版主

Rank: 7Rank: 7Rank: 7

板凳
发表于 2018-6-3 12:43:05 |只看该作者

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


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

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

记得打开你的声音,片尾有小彩蛋
   https://www.zhihu.com/video/984780622191030272  
此程序的想法来源于一个国外视频:

6分钟演示15种排序算法_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

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

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

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



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

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

════其他文章及回答:

如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 区块链 | 人工智能 | 双11 | 嘻哈 | 爬虫

欢迎搜索及关注:Crossin的编程教室


回复

使用道具 举报

2

主题

1

好友

30

积分

新手上路

Rank: 1

沙发
发表于 2018-6-3 02:36:01 |只看该作者
程序呢?
罪人亲往犯法,止于梦者便为善人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 06:36 , Processed in 0.014621 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部