浅谈几种入门级排序算法:冒泡排序、选择排序、快速排序、插入排序(少儿编程课程)

1542 2022-03-13 10:36

冒泡排序图解

气泡由左至右,一次一个气泡,一个气泡执行一轮。一轮带一个最大值到最右端。每一轮进行之后,问题的复杂度都会降低(会减轻元素个数分之一)。

 

选择排序图解,同冒泡排序,每轮会减少一次比较

 

快速排序图解:分值算法本身不需要交换,而冒泡排序的升级版是快排。而冒泡和快排都属于交换排序。为啥属于交换呢?因为古时候计算机各种资源都很紧缺,计算资源、存储资源都要好好设计,用最少次数的比较、用最小占地面积来倒腾、所以重复利用一个存储块就可以用交换来完成。一个悬浮的变量可以倒腾两个存储列表的交换。

而新版本的快排,可以放开了使用新建的分区列表。不用理会交换。所以分治的思想才是快排的根本。

指针代表一个线索

 

快速排序双向扫描

插入排序,就是玩扑克牌,每次摸取一张,插入从左到右从小到大的比较之中。

 

原始代码

修改增加随机快速排序的代码部分

修改增加随机快速排序的代码部分-pre2

 

你“听”过这些经典排序算法吗?(源码)

 

全部评论

·