3日坊主を脱却して4日も続きました。
3日目はこちら<[Rubyでアルゴリズムを実装する:Day 3 -二分探索-](https://qiita.com/Atarubift/items/640abe8c8f873c23aee5)>
線形探索とは
ランダムなデータを最初から一つずつ比べて特定の値を見つけていく方法。
見つかったらそこで処理を終了する。
とーっても簡単なアルゴリズムだ
仕組みがわかったら即コーディングに移ろう
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を返す。
出力は見つかれば見つかった場所。見つからなければ見つからなかった旨を出力する。
最後に
やっぱり昨日にに比べたらとても簡単だった
ただ、イメージできているものをイメージ通りに実装するのって難しいなって思ったりもする
さて、次回は再帰でもっとも有名なハノイの塔をやってみるか。。。