1. 程式人生 > >快速排序實現以及時間複雜度分析

快速排序實現以及時間複雜度分析


平均時間複雜度分析:
T(1) = 1;
T(n) = 2*T(n/2) + a*n;(a為常數,每次合併時,複雜度為O(n))
= 2*(2*T(n/4)+a*n/2) + a*n
= 4*T(n/4) + 2*a*n
= 4*(2*T(n/8)+a*n/4) + 2*a*n
= 8*T(n/8) + 3*a*n
=......
= 2^k*T(1) + k*a*n  (其中n==2^k,即k=log2(n))
= n + a*n*log2(n);
所以時間複雜度為O(nlogn)