逐次探索
明解C言語 入門編 > 6. 関数 >
逐次探索
Perl
$NINSU = 5; $FAILED = -1; sub search { my @ary = @_; my $key = $ary[0]; my $no = $ary[1]; $i = 2; while (1) { return $FAILED if ($i == $no + 2); return $i - 1 if ($ary[$i] == $key) ; $i++; } } @ary = (83, 55, 777, 499, 20); $key = 18; $idx = &search($key, $NINSU, @ary); if ($idx == $FAILED) { print "$keyは、見つかりませんでした。\n"; } else { print "$keyは、$idx番目にあります。\n"; } $key = 499; $idx = &search($key, $NINSU, @ary); if ($idx == $FAILED) { print "$keyは、見つかりませんでした。\n"; } else { print "$keyは、$idx番目にあります。\n"; }
実行結果
L:\>perl lesson_06_049.pl
18は、見つかりませんでした。
499は、4番目にあります。