Quicksort最坏情况运行时间的再现

时间:2013-06-07 04:39:30

标签: algorithm math quicksort recurrence

假设我们构建了一个quicksort,并且pivot值需要线性时间。找出最坏情况运行时间的重现。

我的回答: T(n)= T(n-1)+ T(1)+ theta(n)

当子阵列完全不平衡时,会出现最坏情况。 一个子阵列中有1个元素,另一个子阵列中有(n-1)个元素。 theta(n)因为它需要运行时间n来找到枢轴。

我这样做是否正确?

3 个答案:

答案 0 :(得分:2)

你的复发大多是正确的,但你实际上并没有进行两次递归调用。在最坏情况下,快速排序,数据透视图将是数组中最大或最小的元素,因此您将重复使用一个大小为n - 1的巨大数组。另一个子数组的长度为0,因此不会进行递归调用。最重要的是,完成的工作总量是每个级别的Θ(n),因此递归关系更合适

  

T(n)= T(n-1)+Θ(n)

然后这又解决了Θ(n 2 )。

希望这有帮助!

答案 1 :(得分:1)

你无法观察,因为根据我的研究T(N)= T(N-K)+ T(K-1)+ n 在我们有之前,我们无法观察到确切的价值 k的值,

答案 2 :(得分:0)

T(n)= T(an /(a + b))+ T(bn /(a + b))+ n

其中a /(a + b)和b /(a + b)是所考虑数组的分数

相关问题