逐次探索 (番兵)
明解C言語 入門編 > 6. 関数 >
逐次探索 (番兵)
Java
class Lesson050 { static final int NINSU = 5; static final int FAILED = -1; public static void main(String[] args) { int[] ary = {83, 55, 777, 499, 20, 0}; int key = 18; int idx = search(ary, key, NINSU); if (idx == FAILED) System.out.printf("%dは、見つかりませんでした。\n", key); else System.out.printf("%dは、%d番目にあります。\n", key, idx); key = 499; idx = search(ary, key, NINSU); if (idx == FAILED) System.out.printf("%dは、見つかりませんでした。\n", key); else System.out.printf("%dは、%d番目にあります。\n", key, idx); } static int search(final int ary[], final int key, final int no) { ary[no] = key; int i = 0; while (true) { if (ary[i] == key) break; i++; } return (i == no ? FAILED : i + 1); } }
実行結果
L:\>java Lesson050
18は、見つかりませんでした。
499は、4番目にあります。