随机化的快速排序,在分区后再次选择枢轴

问题描述 投票:1回答:1

我想针对这个给定的问题再次提出:

考虑随机快速排序算法的一种变体,其中随机选择枢轴,直到以较低的子数组L和较大的子数组G包含数组元素的3/4。例如,如果随机选择的枢轴对数组进行分区,以使L包含1/10的元素,然后再包含另一个枢轴是随机选择的。分析该算法的预期运行时间。

起初,我把这个问题当作只是一个常规的快速排序问题,并在以下位置重复出现:

T(n) = T(3/4n) + T(n/4) + Θ(n) (where Θ(n) comes from the partition)

如果我们有一个算法总是将拆分始终为1/4:3/4,这是很有意义的。但是我们在这里使用随机旋转,每当不满足分配条件时旋转旋转。我知道随机快速排序的最坏情况运行时间仍为O(n ^ 2),但我认为在这种情况下,最坏情况现在有所不同(比O(n ^ 2)还差)。到目前为止,我走在正确的轨道上吗?

algorithm sorting recursion time-complexity quicksort
1个回答
0
投票

快速排序的时间复杂度永远不会超过O(n^2),除非您选择一些需要花费O(n)时间来选择枢轴的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.