对于QuickSort,证明第一次分隔阶段(在指针交叉之前)用的平均交换次数是: N − 2 6 \frac{N-2}{6} 6N−2
前提:
假设:
证明:
在除了分隔元剩余的 N − 1 N-1 N−1 个元素中,有 j − 1 j-1 j−1 个元素小于分隔元,有 N − j N-j N−j 个元素大于分隔元
这 N − 1 N-1 N−1 个元素每个元素大于分隔元的概率为 p = N − j N − 1 p=\frac{N-j}{N-1} p=N−1N−j前 j − 1 j-1 j−1 个元素中大于分隔元的个数(即交换次数)的期望为: E = ( N − j ) ( j − 1 ) N − 1 E=\frac{(N-j)(j-1)}{N-1} E=N−1(N−j)(j−1)
对于每个
1
≤
j
≤
N
1\le j \le N
1≤j≤N ,其出现的概率是
1
N
\frac1N
N1,即可解得平均交换次数为:
T
=
1
N
∑
1
≤
j
≤
N
(
N
−
j
)
(
j
−
1
)
N
−
1
T
=
N
−
2
6
\begin{aligned} &T = \frac 1N \sum_{1\le j\le N}\frac{(N-j)(j-1)}{N-1} \\ \\ &T= \frac {N-2}{6} \end{aligned}
T=N11≤j≤N∑N−1(N−j)(j−1)T=6N−2