【发布时间】:2021-09-24 05:25:27
【问题描述】:
快速排序是一种 O(nlog(n)) 排序算法。这是否意味着它总是比 O(n2) 算法的插入排序更快?为什么/为什么不?
【问题讨论】:
标签: sorting quicksort insertion-sort
快速排序是一种 O(nlog(n)) 排序算法。这是否意味着它总是比 O(n2) 算法的插入排序更快?为什么/为什么不?
【问题讨论】:
标签: sorting quicksort insertion-sort
在极端情况下,快速排序和插入排序实际上都可以拥有与O(n) 相同的性能。对于已经排序的集合的插入排序,插入一个新元素最多需要O(n) 比较,并且只需要O(1) 进行插入。当分区总是导致一个元素后跟集合的其余部分时,快速排序的最坏情况会发生。如果这种情况一直持续下去,那么在这种最坏的情况下,快速排序也可以在 O(n) 中运行。
但是,在一般情况下,我们希望快速排序将执行为O(n*lgn),而插入排序将执行为O(n^2)。
【讨论】:
根据系统的不同,对于 16 到 96 个元素的小数组,插入排序可能更快。对于
【讨论】: