Aさんは、配列Dataの先頭から順に atai と同じ値を探し、比べた回数 kaisu を表示するプログラムを作った(共通テスト用プログラム表記。添字は0から始まり、÷ は整数の除算の商を表す)。
( 1 ) Data = [15, 8, 23, 4, 42, 16]
( 2 ) i = 0 , kaisu = 0 , mitsuketa = 0
( 3 ) i < 要素数(Data) and mitsuketa == 0 の間繰り返す:
( 4 ) | kaisu = kaisu + 1
( 5 ) | もし Data[i] == atai ならば:
( 6 ) | ⎿ mitsuketa = 1
( 7 ) ⎿ i = i + 1
( 8 ) 表示する(kaisu)
atai が 4 のときと、atai が 10 のときに表示される値の組合せとして正しいものはどれか。
- ①3 と 6
- ②4 と 5
- ③4 と 6
- ④3 と 5
答えと解説を見る
正解は「4 と 6」。
手順
①atai=4:15、8、23、4 と比べ、4回目で見つかります。mitsuketa=1 になり、繰り返しが終わるので kaisu=4。
②atai=10:どの値とも一致しないので、6個すべてと比べます。i が6になり、i<6 が成り立たなくなって終わるので kaisu=6。
③このように、先頭から順に調べる線形探索では、見つからないときに要素数と同じ回数だけ比べます。
ひっかけ注意
・「3 と 6」…3は値4の添字です。添字は0から数えるので、比べた回数は添字より1多くなります。
・「4 と 5」…5は最後の要素の添字です。見つからない場合も、最後の要素まで6回比べます。
・「3 と 5」…3は値4の添字、5は最後の要素の添字です。比べた回数は、どちらも添字より1多い4回と6回です。