アルゴリズム・疑似言語アルゴリズムと疑似言語シラバス9.0

クイックソートとは?

読み方: くいっくそーと
1行定義(シラバス9.0 / IPA公式 · 確認日 2026-06-08

ピボット要素を基準に配列を2分割する操作を再帰的に繰り返す分割統治型ソート。平均計算量O(n log n)で実用最速

詳細解説

クイックソート(Quicksort)は、配列から「ピボット」と呼ぶ基準値を選び、ピボットより小さい要素を左、大きい要素を右に分割する操作(パーティション)を再帰的に繰り返すことで整列するアルゴリズムです。分割統治(Divide and Conquer)パラダイムの典型例です。平均計算量はO(n log n)であり、実装次第では定数係数が小さいためC++標準ライブラリ(std::sort)などで広く採用されています。一方、ピボット選択が悪い場合(例:すでにソート済みの配列に対して先頭要素をピボットにする)は分割が偏りO(n²)になる最悪ケースがあります。この問題はランダムピボット選択や「3点メジアン法(先頭・中央・末尾の中央値をピボット)」で緩和できます。FE試験では「クイックソートの手順のトレース」「ピボット選択と分割の回数の関係」「マージソートとの比較(安定性・メモリ使用量)」が頻出です。クイックソートは**不安定ソート**(同値要素の順序が変わりうる)であることも重要な違いです。

FE試験での出題ポイント

  • 1平均O(n log n)、最悪O(n²)(ピボット選択が最悪の場合)
  • 2不安定ソート(同値要素の相対順序が変わる場合あり)
  • 3ランダムピボット/3点メジアン法で最悪ケースを回避
  • 4マージソートとの比較:クイック(空間O(log n))vs マージ(安定・空間O(n))

関連用語

マージソート
アルゴリズムと疑似言語
バブルソート
アルゴリズムと疑似言語
再帰
アルゴリズムと疑似言語
Big-O記法
アルゴリズムと疑似言語
疑似言語
アルゴリズムと疑似言語

クイックソート」を問う科目B問題を解いて理解を定着

合格ナビではFE科目B疑似言語問題をAI解説付きで練習できます。

IPA シラバス 9.0 準拠 / 最終更新: 2026-06-08