【发布时间】:2018-11-12 16:15:23
【问题描述】:
在构建排序算法对数组进行排序时,数组中有多少 n 个元素的快速排序比插入排序快?我知道快速排序适用于更多元素,而插入排序适用于较小的元素。但是想知道快速排序比插入排序更好的选择是多少?
【问题讨论】:
标签: sorting
在构建排序算法对数组进行排序时,数组中有多少 n 个元素的快速排序比插入排序快?我知道快速排序适用于更多元素,而插入排序适用于较小的元素。但是想知道快速排序比插入排序更好的选择是多少?
【问题讨论】:
标签: sorting
这些算法不仅仅依赖于数组的大小来确定它们的运行时间。对于快速排序,您的算法选择的枢轴会对运行时产生重大影响。如果枢轴始终是最大或最小元素,则快速排序采用O(n^2)。插入排序还受数组大小以外的因素影响。如果您按顺序插入元素,该算法可能允许O(n) 的运行时间,而不管数组大小如何。但是,如果您以相反的顺序插入,则此算法将采用O(n^2)。由于这些因素,没有大小 n 可以保证一种算法比另一种算法执行得更好。如果您关心大型数组的排序算法的运行时间,您应该查看 heapsort 或 mergesort,它们都是O(n log n),而且速度更快!
【讨论】: