Quicksort中位数3运行时间

时间:2013-02-17 15:35:00

标签: sorting case average

我正在考虑快速排序算法,分区函数中的枢轴被选择为数组中三个(统一)随机选择项的中值。有谁知道平均情况的运行时间?

1 个答案:

答案 0 :(得分:0)

小假设:所有元素都不同。

有了这个假设,即使你选择pivot只是一个随机元素,平均运行时间也是O(n * log n)。 最乐观的情况也是O(n * log n)。 选择三个随机元素的中值并不会使平均情况更糟,因此它也必须是O(n * log n)。 通过查看中位数获得的收益与平均值的偏差较小。 这种版本的快速排序更加糟糕 - 运气多余。

如果元素不必不同,请考虑一个案例,它们都是相同的。 如果您的算法仍然在O(n * log n)时间内工作,那么它可能会完全相同。