探索のプログラムで、データにない値を入力したとき
DNCL それぞれの探索実装
Data=[12,21,26,35,44,50,62,75,83,90]
item_in = 整数値(【外部からの入力】)
#線形探索
mitskatta=偽
iを0から 要素数(Data)-1まで1ずつ増やしながら繰り返す:
もし Data[i]==item_in ならば:
表示する("[線形探索]: 入力値",item_in,"は添字",i,"番目に見つかった")
mitskatta=真
ループを抜ける
もし not mitskatta ならば:
表示する("[線形探索]: 入力値",item_in,"は見つかりませんでした")
#二分探索
関数定義 一回分の探索結果(l, r, test_item):
m = 整数値( (l+r)/2 )
もし test_item == Data[m] ならば:
戻り値(真, m, m)
もし test_item < Data[m] ならば:
戻り値 (偽, l, m-1)
そうでなければ: #test_Arr[m]<test_item
戻り値(偽, m+1, r)
l, r = 0, 要素数(Data)-1
kaisu = 1
ずっと繰り返す:
#戻り値は一つの配列に詰めて帰ってくる:
res_Hi = 一回分の探索結果(l, r, item_in)
is_centerleft = res_Hi[0]
l, r = res_Hi[1], res_Hi[2]
もし is_centerleft ならば: # l=r=m
表示する("[二分探索]: 入力値",item_in,"は添字",l,"番目に見つかった")
ループを抜ける
もし l > r ならば: #データにない値を探させるとなる。
表示する(“[二分探索]: 入力値”,item_in,”は見つかりませんでした”)
ループを抜ける
表示する("[二分ログ]: ",kaisu,"回目。入力値のありかは",l,"番目から",r,"番目に絞れる")
kaisu=kaisu+1