排序
十大排序算法
冒泡排序
优化1:
优化2:
排序算法的稳定性
原地算法
选择排序
堆排序
插入排序
逆序对
优化:由于插入排序的每一次插入实际上都是交换的操作(类似冒泡排序),所以可以将交换改为挪动来减少交换操作的次数
插入排序——二分搜索优化
二分搜索
归并排序
常见的递推式
快速排序
下图,快速排序的实现方法,begin和end的使用挺多细节的,文字很难说清楚。
如果忘了,最快回忆的方式,还是找快速排序的视频看看吧。
希尔排序
希尔排序的底层实现一般用插入排序,因为希尔排序主要用来减少逆序对,跟插入排序真的很搭。希尔排序甚至可以看成插入排序的一种优化。
计数排序
下图中的改进思路可以解决上图存在的问题,其中累加前面数的次数得到的位置信息的改进,我觉得是让排序稳定。k-min的索引则解决了无法对负整数进行排序的问题
基数排序
桶排序
桶排序的分桶规则是自己定的,不一定是下图中的元素值*元素数量
休眠排序,哈哈哈
奇葩的排序方法,哈哈哈,像是用来玩的一样,知不知道都无所谓了