1.算法流程:
快速排序的时间复杂性分析:
1.最坏情况划分:当划分产生的两个子问题分别包含了n-1个元素和0个元素时,快速排序是最坏情况,假如每次递归调用,总是出现最不平衡划分,这是最不平衡划分。划分操作时间复杂度为Θ(n),则算法运行时间的递归表达式为T(n)=T(n-1)+T(0)+Θ(n).利用代入法可以求得T(n)=Θ(n^2).可以证明当数组完全有序时候,时间复杂度为Θ(n^2)
2.最好情况划分:当partition得到的两个子问题规模都不大于n/2时候,是最平衡划分。则递归式为T(n)=2T(n/2)+Θ(n).根据主定理,可得时间复杂度为Θ(nlgn)