サンプル問題 科目B 問11
問題
次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。
関数 binSort を binSort([ ]) として呼び出すと,戻り値の配列には未定義の要素は含まれておらず,値は昇順に並んでいる。
〔プログラム〕
○整数型の配列: binSort(整数型の配列: data)
整数型: n ← dataの要素数
整数型の配列: bins ← {n個の未定義の値}
整数型: i
for (i を 1 から n まで 1 ずつ増やす)
bins[data[i]] ← data[i]
endfor
return bins
解答群
ア {2, 6, 3, 1, 4, 5} イ {3, 1, 4, 4, 5, 2}
ウ {4, 2, 1, 5, 6, 2} エ {5, 3, 4, 3, 2, 6}
この問題は何なのか
この問題では、例えばdata[i]が2の場合、bins[2] ← 2 を実行します。これは何なんでしょう。
数字のついたバケツを順番に並べておいて、各値を同じ番号のバケツに入れたら、バケツが順番に並んでいるのだからソートされるよね、という発想です。
この問題では、バケツが6個で、入れる数も6個、未定義のバケツがなくなることが条件なので、入れる数が重複していないことが条件です。その条件で選択肢を見ると、アが答えです。
答え
ア