浅谈几种入门级排序算法:冒泡排序、选择排序、快速排序、插入排序(少儿编程课程)
1542 2022-03-13 10:36
冒泡排序图解
气泡由左至右,一次一个气泡,一个气泡执行一轮。一轮带一个最大值到最右端。每一轮进行之后,问题的复杂度都会降低(会减轻元素个数分之一)。
选择排序图解,同冒泡排序,每轮会减少一次比较
快速排序图解:分值算法本身不需要交换,而冒泡排序的升级版是快排。而冒泡和快排都属于交换排序。为啥属于交换呢?因为古时候计算机各种资源都很紧缺,计算资源、存储资源都要好好设计,用最少次数的比较、用最小占地面积来倒腾、所以重复利用一个存储块就可以用交换来完成。一个悬浮的变量可以倒腾两个存储列表的交换。
而新版本的快排,可以放开了使用新建的分区列表。不用理会交换。所以分治的思想才是快排的根本。
指针代表一个线索
快速排序双向扫描
插入排序,就是玩扑克牌,每次摸取一张,插入从左到右从小到大的比较之中。
全部评论