逐次探索 (番兵)
明解C言語 入門編 > 6. 関数 >
逐次探索 (番兵)
Perl
$NINSU = 5; $FAILED = -1; sub search { my ($key, $no, $ary) = @_; $$ary[$$no] = $$key; $i = 0; while (1) { last if ($$ary[$i] == $$key); $i++; } return ($i == $$no ? $FAILED : $i + 1); } @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_050.pl
18は、見つかりませんでした。
499は、4番目にあります。