堆排序 归并排序 快速排序
最坏时间 O(nlogn) O(nlogn) O(n^2)
最好时间 O(nlogn) O(nlogn) O(nlogn)
平均时间 O(nlogn) O(nlogn) O(nlogn)
辅助空间 O(1) O(n) O(logn)~O(n)
从数据看明显堆排序最好啊,可是为什么都说快速排序比较好,求详细解释。
有人说代码实现后,数据量足够大的时候,快速排序的时间确实是比堆排序短,等会我写完代码也实验下。
最坏时间 O(nlogn) O(nlogn) O(n^2)
最好时间 O(nlogn) O(nlogn) O(nlogn)
平均时间 O(nlogn) O(nlogn) O(nlogn)
辅助空间 O(1) O(n) O(logn)~O(n)
从数据看明显堆排序最好啊,可是为什么都说快速排序比较好,求详细解释。
有人说代码实现后,数据量足够大的时候,快速排序的时间确实是比堆排序短,等会我写完代码也实验下。
搜到解释是,对于数组,快速排序每下一次寻址都是紧挨当前地址的,而堆排序的下一次寻址和当前地址的距离比较长。