問題
次の擬似言語プログラムを実行したとき、変数minの値はいくつか。 整数型の配列: data ← {45, 12, 78, 23, 56, 9, 34} 整数型: min ← data[1] 整数型: i ← 2 while (i ≦ 7) if (data[i] < min) min ← data[i] endif i ← i + 1 endwhile
選択肢
- 1ア 9
- 2イ 12
- 3ウ 23
- 4エ 45
正解
1. ア 9
詳しい解説を見る解説を閉じる
解説
正解はア。これは配列の最小値を求める典型アルゴリズムである。まずmin←data[1]=45で初期化し、i=2から7まで各要素とminを比較して、より小さければminを更新する。トレースすると、data[2]=12<45でmin=12、data[3]=78は更新なし、data[4]=23は更新なし、data[5]=56は更新なし、data[6]=9<12でmin=9、data[7]=34は更新なしとなり、最終的なminは9である。イの12は途中経過の値、エの45は初期値であり、最後の要素まで追跡しないと誤答しやすい。ウの23も比較されるが最小ではない。基本情報の科目Bでは、最大値・最小値探索は頻出の基本アルゴリズムであり、「先頭要素で初期化し、順に比較して条件を満たせば更新する」という流れを確実に押さえておきたい。
一問一答
科目A 180問+科目B 60問