逐次探索

明解C言語 入門編 > 6. 関数 >

逐次探索

Ruby
NINSU  =  5
FAILED = -1

def search(key, no, ary)
    i = 0
    while (1)
        return FAILED if (i      == no)
        return i + 1  if (ary[i] == key)
        i += 1
    end
end

ary = [83, 55, 777, 499, 20]
key = 18
idx = search(key, NINSU, ary)
if (idx == FAILED)
    print "#{key}は、見つかりませんでした。\n"
else
    print "#{key}は、#{idx}番目にあります。\n"
end

key = 499
idx = search(key, NINSU, ary)
if (idx == FAILED)
    print "#{key}は、見つかりませんでした。\n"
else
    print "#{key}は、#{idx}番目にあります。\n"
end

実行結果

L:\>ruby l:\lesson_06_049.rb
18は、見つかりませんでした。
499は、4番目にあります。