2019-04-28 20:51:54
首先,所有基于比较的排序算法,都是以决策树模型作为依据的。
对于待排序的 n 个元素,其所有可能的排序种数为 n! ,其决策树高度为h (即为排序算法比较的次数)
高度为 h 的决策树,最多有叶子节点 个,所以就有
高度为 h 的决策树,最多有叶子节点 个,所以就有
由斯特林近似公式:
得
其中,
故, 的渐近下界为
【补充】
如果不使用斯特林公式,依然可以证明得到log(n!)和nlogn是同阶的。
1)显然的是n! < n^n,因此log(n!) < nlogn
2) n! = n * (n - 1) * ... * 1, 我们可以将前n / 2的数字放缩到n / 2,后面的所有数字舍去,因此n! > (n / 2) ^ (n / 2),得log(n!) > nlog(n)
综上,logn! 和 nlogn是同阶的。