基于比较的排序算法的时间复杂度
记录一种使用信息熵证明基于比较的排序算法的时间复杂度下限为$\Omega (n\log n)$的方法。
信息熵的计算方法为:
对于一个含有$n$个不同元素的数列,令随机变量$X$表示数列的排列顺序。易知数列总共有$n!$种不同的排列方法。因此,有$\forall i, P(X=i) = \frac{1}{n!}$。故对于一个乱序数列,其信息熵为
接下来计算每次比较大小获得的信息增益。不妨设某时刻数列有$m$种排列的可能,经过一次比较大小,数列中的一对元素确定了先后顺序,此时的数列可能的排列总数变为$\frac{m}{2}$。设比较大小的两种结果(即大于或小于)的概率分别为$p$和$1-p$,则有
由斯特林公式:
可得总比较次数最少为: