sort関数って。。。

会社でふと話題になったので、調べてみた。

Perlのsort関数は、どのようなアルゴリズムが使われているのか!!】

解)
perl 5.6 以前 => quicksort
perl 5.8 以降 => margesort

とのこと。(デフォルト)

うぁ。 quicksort のほうが margesort よりも早いはず・・・なんて思っていたので、ちょっとびっくり。とはいえ、quicksort はソート速度として安定していないので、実際の運用にはマージソートのほうが早いのかな……。
perldocを読む限り、最悪時間量を考慮したみたいなことも書いてあるし。それに、quicksortでは同等の要素に対してsort を行っても、同じ結果が返ってくるとは限らない。

なお、5.8 以降でquicksort アルゴリズムを使用したい場合は、

use sort '_quicksort';

とするらしい。

参考:http://search.cpan.org/~nwclark/perl-5.8.8/lib/sort.pm#SYNOPSIS


とはいえ、実際に業務で使用する分に対して、実感できるほどのものなのだろうか。。。