堆排序
归并排序
快
速排序
最坏时间 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)
从数据看明显 堆排序 最好啊,可是为什么都说 快速排序比较好,求详细解释 。
有人说代码实现后,数据量足够大的时候, 快 速排序的时间确实是比 堆排序 短,等会我写完代码也实验下。
搜到解释是,对于数组,快速排序每下一次寻址都是紧挨当前地址的,而堆排序的下一次寻址和当前地址的距离比较长。