[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:482) Re: perlのsort



>>これだけで良くないか?
>
>残念でした。これではダメなの。
>要するにこの場合、$data[1]の文字列がソート全体に影響を与えてはいけないの。

ダメじゃないと思うけどなぁ。
私の書いたスクリプトでは$data[1]には影響を受けないよ。
|| $a <=> $b は@data_keyの内容では序列が決まらなかったときにインデックスの数字順になるようにしているわけだからこれでいいんだと思うんだけど。

>でどうやらsortコマンドそのものが、内部的にハッシュなのではないか? だから出力結果が崩れるのではないかと推測しています。

Perlのソートが「安定でない」のはアルゴリズムにクイックソートを使っているからでしょ。
クイックソートは元々安定じゃないのでそれはしかたない。

わりと有名なソートアルゴリズムには
バブルソート、挿入ソート、シェルソート、マージソート、クイックソートなんかがあるけど
シェルソートとクイックソートは安定じゃないです。
スピード的には上に書いた順に速くなる。