glibcのqsortをターゲットに、クイックソートの最悪ケースO(n^2)を与えてみた。 先日の記事の通り、glibcのqsortはマージソートだが、非常に大きいデータのときはクイックソートを利用するので、そのように仕向けてみた。 実行した結果、約5億バイトの配列が確保され、ソートにかかった時間は以下のようになった。 マージソート(非アタック用データ):37126ミリ秒 マージソート(アタック用データ):46724ミリ秒 クイックソート(非アタック用データ):39189ミリ秒 クイックソート(アタック用データ):中断(507514ミリ秒以上) 明らかに最悪ケースである。 環境は OS: Debian GNU/Linux (sid/unstable) Compiler: gcc version 4.3.3 (Debian 4.3.3-8) C Library: glibc version