Table of Contents
アルゴリズムの時間と空間の複雑さを理解することは、効率性を評価するのに役立ちます。 ソートとクイックソートは、異なるパフォーマンス特性を持つ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)