快速排序的時間複雜度nlogn是如何推導的??

本文以快速排序爲例,推導了快排的時間複雜度nlogn是如何得來的,其它算法與其相似。算法

對數據Data = { x1, x2... xn }:ui

T(n)是QuickSort(n)消耗的時間;排序

P(n)是Partition(n)消耗的時間;
it

(注:Partition專指把n個數據分爲大小2份的時間)io


有些文章給出了快排的精確計算結果:class

 

C(n) = n - 1 + \frac{1}{n} \sum_{i=0}^{n-1} (C(i)+C(n-i-1)) = 2n \ln n = 1.39n \log_2 n.

相關文章
相關標籤/搜索