这是一般情况的成本?

时间:2014-08-10 16:25:47

标签: algorithm complexity-theory quicksort

根据我的说明,我们找到了快速排序的平均情况的成本,如:

我们认为我们幸运 - 不幸交替。 L:幸运的U:不幸

然后,这两个关系:

L(n)= 2U(n / 2)+Θ(n),
U(n)= L(n-1)+Θ(n)

因此,L(n)=Θ(n lg n)

在我的笔记的另一页,平均案例的费用由以下关系给出:

T(n)= min_ {1< = q< = n} {T(q)+ T(n-q)} +Θ(n)

那么,这两个关系是等同还是有区别?

1 个答案:

答案 0 :(得分:2)

警告:这不是一个真正的答案,而是一个很长的评论。

你错过了第一对关系(L(n)= ...和U(n)= ...)和结论(对于这种特殊情况---即交替)的几个步骤幸运的是,不幸的是 - 表现为O(n lg n))。通过填写这些步骤,您可以获得一种“直观”的论证,说明为什么快速排序的平均案例性能为Θ(n lg n)。也就是说,我们可能期望像我们的一半支柱那样“好”而一半是“坏”,并且在极端情况下,其中一半的枢轴“尽可能好”而另一半则“尽可能地差” ,表现仍然是O(n lg n)(但可能与实际平均情况有不同的常数)。

您给出的第二个关系(即最小化T(q)+ T(n-q)超过q)看起来更像是对我的最佳案例分析的开始,而不是平均案例分析。为此,我希望更像是:

T(n)=(1 / n)sum_ {i = 1} ^ {n-1}(T(n-i)+ T(i))+Θ(n)

可能值得谷歌搜索一些更多的分析...