Menu
Coddy logo textTech

Time and Space Complexity

Coddyの「クイックソート - DSAシリーズ」コースのレッスン 7/9。

時間計算量:

  • 平均的な場合: O(n log n)
    • バランスの取れたピボットは、毎回配列をほぼ半分に分割し、約 log n レベルの O(n) の分割作業が発生します。
  • 最悪の場合: O(n2)
    • ピボットが常に最小または最大の要素である場合(例えば、最後の要素をピボットとする既にソート済みの配列など)、毎回片側が空になり、再帰の深さは n レベルになります。

空間計算量:

  • ここで作成するバージョンでは、各ステップで新しい小さなリストと大きなリストを作成するため O(n) です。古典的な in-place クイックソートでは、これを O(log n) の追加空間に改善します。

まとめ:

  • クイックソートは平均的に非常に高速であり、実務でよく使われるソートアルゴリズムです。
  • 不適切なピボットの選択は O(n2) に低下させる可能性がありますが、適切なピボット戦略(ランダムな要素や中央値を選択するなど)によってこれを回避できます。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

クイックソート - DSAシリーズのすべてのレッスン