【问题标题】:Quick Sort vs Insertion Sort快速排序与插入排序
【发布时间】:2018-11-12 16:15:23
【问题描述】:

在构建排序算法对数组进行排序时,数组中有多少 n 个元素的快速排序比插入排序快?我知道快速排序适用于更多元素,而插入排序适用于较小的元素。但是想知道快速排序比插入排序更好的选择是多少?

【问题讨论】:

标签: sorting


【解决方案1】:

这些算法不仅仅依赖于数组的大小来确定它们的运行时间。对于快速排序,您的算法选择的枢轴会对运行时产生重大影响。如果枢轴始终是最大或最小元素,则快速排序采用O(n^2)。插入排序还受数组大小以外的因素影响。如果您按顺序插入元素,该算法可能允许O(n) 的运行时间,而不管数组大小如何。但是,如果您以相反的顺序插入,则此算法将采用O(n^2)。由于这些因素,没有大小 n 可以保证一种算法比另一种算法执行得更好。如果您关心大型数组的排序算法的运行时间,您应该查看 heapsort 或 mergesort,它们都是O(n log n),而且速度更快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 2019-06-30
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多