O(nlogn)より速いソートが存在しないこと
こんにちは。zalgo(@zalgo3)です。
クイックソートとかヒープソートがで行えることは有名ですね。
実はソートについては次の定理が成り立ちます。
定理
長さの列のソートの計算量の下界はである。
証明
ソートは、2つの要素を比較し、列を並び替える操作を繰り返すことにより行われる。
この流れを二分木で表す(比較の結果に応じて分岐していく)。
すると、葉が最終的な列を表している。
任意のソートが行えるためには、葉の数は個必要である。
二分木の高さをとすると、であることを示せば良い。
Landauの記号の定義から、は十分大きいとみなしてよい。
Stirlingの公式より、
有名な証明なので知ってても損はないと思います!