新らしくなった基本情報 科目 B 20問バージョン アルゴリズムとプログラミング サンプル問題11をJavaにしてみました
2023 年 4 月からIPA (独立行政法人情報処理推進機構)の基本情報技術者試験の制度が変更されました。
ここでは、「基本情報技術者試験 科目 B のサンプル問題20問バージョン」の中から、アルゴリズムとプログラミングの問題を取り上げ、Javaのソースコードを示します。
新人エンジニア研修に参加されている皆様の参考になれば幸いです。

【Javaプログラム】
【結果】
0123456 012345-1 |
【プログラムの解説】
このJavaプログラムは、バケットソート(bin sort)アルゴリズムを実装しています。
まず、public static void main(String[] args)
メソッドで、2つの整数配列 data
と datai
を定義し、それぞれに整数値を格納しています。
data
配列の要素は、0を補って { 0, 2, 6, 3, 1, 4, 5 } となっています。
配列 datai
の要素は、不正解の選択肢として与えられているため、ランダムな整数値が含まれています。
次に、binSort()
メソッドが定義されています。
このメソッドは、引数で与えられた整数配列 data
をバケットソートアルゴリズムでソートし、ソートされた配列 bins
を返します。
バケットソートアルゴリズムでは、まず、各要素の値に対応するバケットを用意します。
このプログラムでは、7個のバケットを表す配列 bins
を定義しています。そのうち、0番目の要素はダミーの0であり、1番目から6番目の要素が各要素の値を表現しています。
バケットソートでは、各要素を対応するバケットに振り分けることで、ソートを行います。
メソッド内の for
ループでは、data
配列の各要素に対して、その値に対応するバケットに要素を挿入しています。
つまり、例えば data[1]
の値が2である場合、bins[2]
の値に2が格納されます。
main()
メソッドでは、まず data
配列に対して binSort()
メソッドを呼び出し、その結果を bindata
配列に代入しています。
そして、 bindata
配列をループで処理し、ソートされた結果を表示しています。
同様に、不正解の選択肢(イ)に対しても、同様の処理を行い、ソートされていない結果を表示しています。