堆排序还是快速排序更好?

aka*_*ash -1 sorting algorithm

我给了一个公司的书面报告.我对一个问题有疑问任何人都可以帮助我吗?

以下是最快的排序算法?
a - 冒泡排序
b - shell排序
c - 堆排序
d - 快速排序

我很困惑b/w快速排序和堆排序都有时间复杂度O(nlogn).

AnT*_*AnT 10

没有"最快"的排序算法.

算法的理论性能总是取决于输入数据.在各自最坏的情况下,堆排序比快速排序快.在一般情况下,快速排序更快.可能可以为每种算法编制一个定制的最佳案例,使其优于所有其他算法.

这实际上就是Introsort这样的"混合"算法存在的原因:Introsort从快速排序开始,如果它看到快速排序正在与这个特定输入竞争,则切换到堆排序.

最重要的是,任何算法的实际性能都会受到它在特定硬件平台上的工作效果的显着影响.如果后者与硬件的属性更好地"同步",理论上"快速"算法可能会失去原始和"慢"的算法.