上课的一张图上出现了几个英文的排序名称,就摘下来看看是什么吧
梳排序(Comb sort)
冒泡排序,初始步长为n,按一定比率减小步长
注:步长较小时可以改为希尔排序提高效率
堆排序 (Heapsort)
用堆优化选择排序
原地归并排序(Inplace Merge sort)
归并排序,只用原数组,坏处是复杂度不稳定,可能会退化
图书馆排序(Library sort)
插入排序优化,元素之间留一些空隙
归并排序(Merge Sort)
分治的进行排序,然后合并两个有序数组
可以求逆序对数量
归并排序(非递归)(Non-recursive Merge Sort)
正常的归并排序,自底向上归并,不需要递归
快速排序(Quick Sort)
对随机数据效果较好,每次随机一个位置的数,把比他小的放在左边,比他大的放在右边
可以O(n)求nth-element
希尔排序(Shell Sort)
定步长从大到小的插入排序
慢速排序(Slow Sort)
复杂度不是多项式,真的是慢速
平滑排序(Smooth Sort)
类似堆排序思想,用了类数据结构的东西,复杂度比较优,数组有序复杂度更优