基本情報技術者試験の科目Bのサンプル問題を題材に,配列の添字を利用した整列について学習します。この問題では,データの値を配列の添字として利用して,値を昇順に並べる処理を確認します。
(令和4年度12月公開) 基本情報技術者試験 サンプル問題 科目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} |
【解答】ア
【解説】
binSort は,データの値を配列 bins の添字として利用して,その位置にデータを格納する処理である。戻り値に未定義の要素を含めず,昇順に並べるには,data に 1~n の整数が重複なく1回ずつ含まれている必要がある。例えば,data = {2,6,3,1,4,5} の場合,それぞれの値を添字として格納すると,bins は {1,2,3,4,5,6} となる。
【参考】
この問題のポイント
この問題から学べることは,
- データの値を配列の添字として利用する方法
- bins[data[i]] ← data[i] の処理
- データの値と配列の添字の関係
- 配列の添字を利用してデータを昇順に並べる方法
です。特に,データの値を配列の添字として利用して整列する方法を理解しておきましょう。このような方法をビンソートといいます。
基本情報技術者試験の学習におすすめの参考書
基本情報技術者試験の合格を目指す方におすすめの参考書です。
学習のお役に立ちましたら
この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。
よろしければ、このサイトを応援いただけますと嬉しいです。
※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。


