我在YouTube上关于快速排序的麻省理工学院讲座。我得到了大部分的想法,但我仍然坚持他在以下几点所说的算术系列:
最差情况: T(n)= T(n-1)+ Theta(n)
他问道,“这等于什么?”
然后他说它等于Theta(n ^ 2)
为什么它等于Theta(n ^ 2)而不等于Theta(n)??
答案 0 :(得分:4)
T(n) = T(n-1) + n = n + n-1 + n-2 + ... + 1 = n(n+1)/2
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)
。