Standard Solution.
比较排序的时间复杂度下界为 O(nlogn)O(n \log n)O(nlogn),证明如下:
设有 nnn 个元素(不妨设它们构成 1∼n1 \sim n1∼n 的一个排列)需要排序。
很明显,输入的 nnn 个元素的排列顺序有 n!n!n! 种可能。
设一共比较了 kkk 次,则我们可以把 n!n!n! 种可能分为 2k2^k2k 类,时间复杂度为 O(k)O(k)O(k)。
为了完成比较排序,我们需要把每种可能都区分开,即 2k≥n!2^k \ge n!2k≥n!。
上述不等式解得 k≥O(nlogn)k \ge O(n \log n)k≥O(nlogn),故比较排序的最低复杂度为 O(nlogn)O(n \log n)O(nlogn)。
注册一个 Sleeping Cup 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Sleeping Cup 通用账户