0
0

More than 3 years have passed since last update.

Rubyでアルゴリズムを実装する:Day 4 -線形探索-

Posted at

3日坊主を脱却して4日も続きました。
3日目はこちら<Rubyでアルゴリズムを実装する:Day 3 -二分探索->

線形探索とは

ランダムなデータを最初から一つずつ比べて特定の値を見つけていく方法。
見つかったらそこで処理を終了する。
とーっても簡単なアルゴリズムだ
仕組みがわかったら即コーディングに移ろう

linerSearch.rb

コード

# 線形探索

def linerSearch(data, target)
  bool = -1
  count = 0
  while count <= data.length
    if data[count] == target
      bool = count
      break
    end
    count += 1
  end
  bool
end

# 実行
print "格納する値:"
data = gets.split().map(&:to_i)
print "探す値:"
target = gets.to_i
search = linerSearch(data, target)

if search >= 0
  puts "#{target}#{search+1}番目に見つかりました。"
else
  puts "#{target}は見つかりませんでした。"
end

linerSearchは数字が格納された配列と探す値を引数に取る。
配列の位置を示すcountが配列の大きさを超えるまでループ
データが見つかればboolにその時の配列の場所を代入してループ終了。
見つからなければboolは-1を返す。

出力は見つかれば見つかった場所。見つからなければ見つからなかった旨を出力する。

最後に

やっぱり昨日にに比べたらとても簡単だった
ただ、イメージできているものをイメージ通りに実装するのって難しいなって思ったりもする

さて、次回は再帰でもっとも有名なハノイの塔をやってみるか。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0