表紙 | 新規 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

insertsort関数 - YukiWikiベースのPonyWikiのソースを読んでみる その34

差分表示


[[YukiWikiベースのPonyWikiのソースを読んでみる]] その34

挿入ソートする関数

今のところは、検索用インデックスのソートにしか使ってない(はず)。整列済みのデータをソートする時に速い。クイックソート並み。

---(
sub insertsort {
	my ($list) = @_;
	my $array_size = @$list;
	for (my $i=1; $i < $array_size; $i++) {
		my $j = $i;
        
		while (($j > 0) && ($$list[$j - 1] gt $$list[$j])) {
			my $tmp = $$list[$j - 1];
			$$list[$j - 1] = $$list[$j];
			$$list[$j] = $tmp;
			$j--;
		}
	}
    
	while ($$list[0] eq "\n") {
		shift @$list;
	}
}
---)

先頭へ