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
とはいえ、実際に業務で使用する分に対して、実感できるほどのものなのだろうか。。。