一尘不染

快速排序优于堆排序

algorithm

堆排序的最坏情况是复杂性,O(nlogn)而快速排序的则是最坏情况O(n^2)。但是经验证据表明,快速排序是一种优势。这是为什么?


阅读 304

收藏
2020-07-28

共1个答案

一尘不染

主要因素之一是quicksort具有更好 的引用位置
-下一个要访问的内容通常在内存中与您刚刚查看的内容很接近。相比之下,堆排序的跳跃幅度更大。由于彼此靠近的事物可能会一起缓存,因此快速排序往往会更快。

但是,quicksort的 最坏情况下的 性能明显比heapsort的要差。由于某些关键应用程序需要保证速度性能,因此在这种情况下堆排序是正确的方法。

2020-07-28