"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

2008-07-29から1日間の記事一覧

バブルソート

use strict; use warnings; my $trials = 10; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = bubble_sort(@target); sub bubble_sort { my @ary = @_; for my $i (reverse 0..…

本買った

計算論 計算可能性とラムダ計算 (コンピュータサイエンス大学講座)作者: 高橋正子出版社/メーカー: 近代科学社発売日: 1991/08メディア: 単行本購入: 7人 クリック: 149回この商品を含むブログ (35件) を見る ラムダラムダしたくて買った。反省とかは特にし…

ヒープソート

use strict; use warnings; my $trials = 20; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = hsort(@target); print join(" ", @target); print "\n"; sub hsort { my @heap =…

素因数分解

Haskell版 http://d.hatena.ne.jp/satzz/20080421/1208746502のほぼ直訳 use strict; use warnings; print join ("\t", factors(600851475143)); sub factors { my ($target, $guess) = @_; $guess ||= 2; return ($target) if $guess * $guess > $target; #…

シェルソート

挿入ソートを流用。少し手がかかった。。。 use strict; use warnings; my $trials = 30; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = shell_sort(@target); print join(" "…

挿入ソート

use strict; use warnings; my $trials = 15; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = isort(@target); sub isort { my @ary = @_; my @ret = (shift @ary); while (1) …

シェーカーソート

これは結構おもしろかった use strict; use warnings; my $trials = 15; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = shaker_sort(@target); sub shaker_sort { my @ary = @…

選択ソート

Wikipediaのほぼ直訳。そろそろ飽きてきたな。っていうかアルゴリズムのシビアな話をPerlでやるなって感じですね。Haskellでやろうかな。 use strict; use warnings; my $trials = 20; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys…