クイックソート(Quick Sort)は、一般的に実用上最も高速とされる整列アルゴリズムです。「分割統治法(Divide and Conquer)」という、大きな問題を小さな問題に分割して解くアプローチを採用しています。処理の流れは以下の通りです。まず配列の中から「ピボット(基準値)」と呼ばれる要素を適当に1つ選びます。次に、ピボットより小さい要素を左側に、大きい要素を右側に集めるように配列を再配置します(パーティション分割)。これにより、ピボットの位置が最終的な整列位置として確定します。最後に、ピボットの左側(小さいグループ)と右側(大きいグループ)に対して、それぞれ再帰的にクイックソートを適用します。通常、配列の分割がバランス良く行われれば、時間計算量は O(N log N) となり、これは比較ベースのソートアルゴリズムの理論的限界値に近い極めて高速な性能です。しかし、ピボットの選び方が極端に悪く(例えば、すでに整列された配列に対して常に最小値や最大値をピボットに選んでしまうなど)、分割が片方に偏り続けると、最悪の場合の計算量は O(N^2) に劣化してしまいます。また、同値のデータの順序が崩れる「不安定ソート」です。
試験でのポイント