Table of Contents
Quicksort是一种广泛使用的排序算法,以效率著称。理解它的性能需要分析执行过程中的预期比较和交换数量。本条探讨了这些期望背后的数学原理,侧重于Quicksort的概率分析。
预期比较数
快速组合中预期的比较次数取决于选择枢轴和分区过程。假设所有排列都同样可能,则平均大小可使用递归方程分析。对于一个大小阵列n],预期比较表示为C(n)],满足重现:
C(n)=n-1+frac{1 ⁇ n}sum ⁇ k=0 ⁇ n-1}[C(k)+C(n-1-k)]
这种重复发生简化为众所周知的结果:C(n) ⁇ 2n in n,用于大n。 其推导涉及将所有可能的枢轴位置进行组合,并应用谐音数字的属性。
交换的预期数量
快速交换在分区过程中发生。预期的交换次数与比较次数和枢轴选择的分布有关。在统一随机性下,预期的交换表示为]S(n)[,可以通过分析分区步骤来大致表示。
每个分区步骤都涉及互换元素,以确保正确放置枢轴。每个分区的预期互换与子阵列大小成正比。在所有递归调用中进行组合得出一个近似值 : ] S(n) Q n in n [[FLT: 1]]。
期望摘要
- 比较: 大号约2n innn。
- 宽度: 大型的大约n in n n 。
- 两个度量衡都与数组大小对数增长,反映了Quicksort的效率.