13.排序(下)
快排:五个值有序花代价太大
我把递归看作二叉树角度,能不能把后三层递归去掉,将近%80的递归,如果后四层就是90,减少递归次数,递归调用栈真,多少有消耗
希尔排序是gap大,跳的快,但是这就10个数据没必要,建堆的话,建就ON,就选一个N方,插入 选择 冒泡,有没有跟插入比较的资格,没有,如果有序ON,比一般N方快,有实践意义
随机数原因选key会影响排序时间这是release
快排加上三数取中,小区间优化,效果还是不错的
重复多的话,堆排,建堆,选数效果就不是那么明显了,不会让大的数尽可能在上面,因为中间堆叠了很多相同的数,希尔和堆排这种情况干不过快排
为什么相遇位置比key小
面试:常考快排,
时间有限。
有些人认为快排不好理解:挖坑法:
左面为key,右边找小甩到左面坑,右面形成新的坑,左面找大,甩来甩去,最后一定相遇在坑上,因为他们其中一个一定是坑,把key放进来 ,效率没有提升,单趟没有效率提升空间,都是oN,这种方法更好理解,不用怀疑相遇位置为什么比Key小,左面作key不能左面先走,