不断选择剩余元素的最小者算法
$O(N^2)$数组
将后续元素插入到已经有序的元素适当的位置优化
$O(N^2)$code
每次对N有序子数组进行 插入排序
,而后减小N,重复对有序子数组进行 插入排序
,直到N为1排序
对于中等数量级,一般只慢高级排序一点,实现简单,适合嵌入式开发队列
分治策略:先排序左半部分,再排序右半部分,最后合并,合并须要使用额外N控件的中间数组ip
$O(NlogN)$开发
分治策略:将数组分为三部分,比元素v小的元素,v元素,比v大的元素,能够理解这是一种入座算法,经过不断让元素入座(同时保证左子树都小于右子树),实现总体数组有序。get
注意须要事先Shuffle,否则最多须要 $N^2/2$ 比较it
优化:熵最优(大量重复元素状况),小数组使用插入排序,三取样(切分数尽可能为中位数)
适用于流式输入,插入经过上浮,删除经过下沉来实现有序
堆排序,先下沉后上浮