スポンサーリンク

【応用情報技術者試験】ソートアルゴリズム 実践問題10問

実践問題

解答&解説は第1問から第10問までを列挙しています。
まず問題を解いてから解答&解説を見ることを推奨します。

第1問

配列 7, 3, 5, 2 に対して、昇順のバブルソートを1回(先頭から末尾まで1巡)行った後の配列はどれか。

A. 3, 5, 2, 7
B. 2, 3, 5, 7
C. 3, 7, 2, 5
D. 7, 3, 2, 5

解答&解説はこちら


第2問

未整列部分から最小値を選び、整列済み部分の末尾に配置していく方式はどれか。

A. バブルソート
B. 選択ソート
C. 挿入ソート
D. クイックソート

解答&解説はこちら


第3問

挿入ソートの特徴として最も適切なものはどれか。

A. 基準値で分割しながら整列する
B. 左側を整列済みとして要素を適切な位置に挿入する
C. 毎回最大値を末尾へ送る
D. 半分に分割して最後に併合する

解答&解説はこちら


第4問

平均計算量が O(nlogn) となるものはどれか。

A. バブルソート
B. 選択ソート
C. クイックソート
D. 挿入ソート

解答&解説はこちら


第5問

配列 8, 4, 6, 2 に対して選択ソートを1回行った後の配列はどれか。

A. 4, 8, 6, 2
B. 6, 4, 8, 2
C. 2, 4, 6, 8
D. 2, 4, 8, 6

解答&解説はこちら


第6問

クイックソートに関する説明として正しいものはどれか。

A. 必ず O(nlogn) になる
B. 基準値の選び方によって性能が変わる
C. 隣接要素だけを交換する
D. 追加の配列領域が必須である

解答&解説はこちら


第7問

配列 4, 2, 5, 3 に対して挿入ソートで2番目の要素まで処理した時点の状態はどれか。

A. 2, 4, 5, 3
B. 4, 2, 5, 3
C. 2, 5, 4, 3
D. 2, 3, 4, 5

解答&解説はこちら


第8問

マージソートの特徴として適切なものはどれか。

A. 隣接要素の交換を繰り返す
B. 未整列部分から最大値を選択する
C. 配列を分割し、整列後に併合する
D. 先頭から順に適切位置へ挿入する

解答&解説はこちら


第9問

ほぼ整列済みのデータに対して比較的効率が良いものはどれか。

A. 挿入ソート
B. 選択ソート
C. バブルソート
D. マージソート

解答&解説はこちら


第10問

あるソート処理の途中結果が次のようになった。

9, 4, 7, 2

4, 7, 2, 9

この1回の処理として最も考えられるものはどれか。

A. バブルソート
B. 選択ソート
C. 挿入ソート
D. マージソート

解答&解説はこちら


解答&解説

解答:第1問

答え:A

1巡すると、

  • 7と3 → 交換
  • 7と5 → 交換
  • 7と2 → 交換

3, 5, 2, 7

バブルソートは最大値が末尾へ移動します。

問題へ戻る


解答:第2問

答え:B

未整列部分から最小値を選んで先頭側に確定していくのが選択ソートです。

問題へ戻る


解答:第3問

答え:B

挿入ソートは、左側を整列済みとして現在の要素を正しい位置へ差し込みます。
トランプを並べる感覚です。

問題へ戻る


解答:第4問

答え:C

クイックソートの平均計算量は O(nlogn)
バブル・選択・挿入は基本 O(n²) です。

問題へ戻る


解答:第5問

答え:C

ここ、試験で大事なポイントです。

配列 8, 4, 6, 2 の未整列部分全体から最小値 2 を探し、先頭の 8 と交換します。

2, 4, 6, 8

ただし、1回でたまたま全体が整列しただけです。
選択ソートの1回は「先頭が確定する」処理です。

問題へ戻る


解答:第6問

答え:B

クイックソートは 基準値の選び方で分割効率が変わります。
偏ると 最悪 O(n²) になります。

問題へ戻る


解答:第7問

答え:A

4, 2, 5, 3

2番目の要素 2 を左側に挿入。

2, 4, 5, 3

ここでは左側2要素が整列済みになります。

問題へ戻る


解答:第8問

答え:C

マージソートは

  • 半分に分割
  • それぞれ整列
  • 最後に併合

という流れです。

問題へ戻る


解答:第9問

答え:A

挿入ソートは、ほぼ整列済みなら移動量が少なく効率が良くなります。

問題へ戻る


解答:第10問

答え:A

9, 4, 7, 2

1巡で、

  • 9と4 → 交換
  • 9と7 → 交換
  • 9と2 → 交換

4, 7, 2, 9

最大値が末尾に移動しているのでバブルソートです。

問題へ戻る


コメント