問2 クイックソートの処理方法

基本情報​技術者試験 令和8年度 公開問題 科目A、全20問のうちの問2。

出典:令和8年度 基本情報技術者試験 公開問題 科目A 問2

クイックソートの処理方法を説明したものはどれか。

  1. ア既に整列済みのデータ列の正しい位置に,データを追加する操作を繰り返していく方法である。
  2. イデータ中の最小値を求め,次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく方法である。
  3. ウ適当な基準値を選び,それよりも小さな値のグループと大きな値のグループにデータを分割する。同様にして,グループの中で基準値を選び,それぞれのグループを分割する。この操作を繰り返していく方法である。
  4. エ隣り合ったデータの比較と入替えを繰り返すことによって,小さな値のデータを次第に端の方に移していく方法である。
答えと解説を開く

正解はウです。

クイックソートは、まず基準値 (ピボット) を 1 つ選び、それより小さい値を片側、大きい値をもう片側に集めます。分けた組の中でまた基準値を選んで分ける、という操作を、組が 1 個になるまで繰り返します。ウがこの説明です。正解はウです。

ほかの選択肢が違う理由

  • ア整列済みの列の正しい位置に 1 つずつ差し込むのは、挿入ソートです。
  • イ残りの中から最小値を選んで前に並べていくのは、選択ソートです。
  • エ隣どうしを比べて入れ替え、小さい値を少しずつ端へ移すのは、バブルソートです。

仕組み

クイックソートは、問題を小さく分けて同じ手順で解く「分割統治」の代表です。平均の計算量は n log n で、よく使われます。

基準値の選び方が悪く、毎回片側に 1 個しか残らない分け方が続くと、計算量は n の 2 乗まで悪くなります。

この問に出る言葉