アルゴリズムの時間と空間の複雑さを理解することは、効率性を評価するのに役立ちます。 ソートとクイックソートは、異なるパフォーマンス特性を持つ2つの一般的なソートアルゴリズムです。 この記事では、その複雑性を計算する方法について説明します。

メルゲソートの複雑さ

配列を半分に分割し、各サブアレイが単一の要素を含んでいるまで再帰的に再帰的に。 合併プロセスは、ソートされた順番でこれらのサブアレイを結合します。

合併ソートの複雑さは、常に配列を分割し、効率的にマージするので、最善、平均、最悪の場合の]O(n log n)[です。

スペースの複雑さは、マージプロセス中に一時的な配列の必要性による[]O(n)[[です。

クイックソートコンプレックス

クイックソートはピボット要素を選択し、ピボットよりも少ないかそれ以上のサブレイに配列を分割します。 このプロセスは再帰的に繰り返されます。

平均時間複雑性は]O(n log n)であるが、最悪の場合、最小または最大要素がピボットとして常に選択される場合、それは]O(n^2)に劣化します。

クイックソートのスペース複雑性は、一般的に]]O(log n)です。再帰スタックスペースにより、より高いですが、実装に応じて高くなります。

複雑性の概要

  • マージソート - 時刻: ]O(n log n), スペース: ]O(n)
  • クイックソート - 時間: ]Average O(n log n)[], ワースト O(n^2), スペース: []O(log n)