分析QuickSort算法

时间:2013-02-21 15:53:58

标签: algorithm quicksort

我在YouTube上关于快速排序的麻省理工学院讲座。我得到了大部分的想法,但我仍然坚持他在以下几点所说的算术系列:

最差情况: T(n)= T(n-1)+ Theta(n)

他问道,“这等于什么?”

然后他说它等于Theta(n ^ 2)

为什么它等于Theta(n ^ 2)而不等于Theta(n)??

1 个答案:

答案 0 :(得分:4)

T(n) = T(n-1) + n = n + n-1 + n-2 + ... + 1 = n(n+1)/2

中的sum of arithmetic progression Theta(n^2)

您也可以通过归纳来获取它,假设Theta(n)代表n(为简单起见,可以使用相同的方法进行修改):

Hypothesis: T(n) = n(n+1)/2
Base: T(1) = 1*2/2 = 1
Step: 
T(n) = T(n-1) + n <= (*) (n-1)*n/2 + n = 
     = (n^2 -n)/2 + 2n/2 = (n^2-n + 2n)/2 =
     =  (n^2 +n) /2 = n(n+1)/2
(*) induction hypothesis

这向我们显示T(n) = n(n+1)/2确实在Theta(n^2)