「アルゴリズム入門」を学ぶ(9) ~比較ソートアルゴリズムの計算量の下限はなぜ決まるのか?

一連の記事

「アルゴリズム入門」の学習(1) - 挿入ソートとマージソート
「アルゴリズム入門」の学習(7) - ヒープソートとプライオリティキュー(C言語)
「アルゴリズム入門」の学習(8) ---- クイックソート( C言語)
学習「アルゴリズム入門」(9)---比較ソートアルゴリズムの計算量の下限はなぜ決まるのですか?
「アルゴリズム学習」学習(10)---カウンティングソート、基数ソート、バケットソート(C言語)



序文

この記事では、比較分類アルゴリズムの概要を主に要約した決定木について紹介しますが、
アルゴリズムの時間パフォーマンスを目的としており、研究全体は本質に偏っています。


1. デシジョンツリー

1. デシジョンツリーとは何ですか?

デシジョン ツリーは完全なバイナリ ツリーであり、各ノードには 2 つの子ノードがあり、指定された入力サイズ内のすべての要素に対する特定の並べ替えアルゴリズムの比較操作を表すことができます。このうち、制御やデータ移動などのその他の操作は無視されます。

比較並べ替えアルゴリズムは決定木として抽象化できます。

2. デシジョンツリーのルール

1. デシジョン ツリーでは、各ノードは ** i : ji:jでマークされます。:j ** マーク。比較する i と j を表します。 i と j を比較します。i はj比較されますその中で、iiJJj は1 ⩽ i , j ⩽ n 1\leqslant i,j\leqslant n を満たす1jn、 n は入力シーケンス内の要素の数です。

2. 決定木のパスは比較メソッドでマークされます

3.成功した比較シーケンスには ⟨ a 1 , a 2 , a 3 , . . . , an ⟩ \langle{a_1,a_2,a_3,...,a_n}\rangle を使用します。_1ある2ある3... あるちなみに、シーケンスは常に決定木の葉ノードです

3. 比較ソートはデシジョン ツリーでどのように機能しますか?

次の図は、挿入ソートが 3 つの要素の入力シーケンスに作用する決定木のケースを示しています。
ここに画像の説明を挿入

2 番目に、比較並べ替えアルゴリズムの下限

定理

最悪の場合、比較並べ替えアルゴリズムは Ω ( nlgn ) 比較を行う必要があります 最悪の場合、比較並べ替えアルゴリズムは \Omega(nlgn) 比較を行う必要があります最悪の場合、比較並べ替えアルゴリズムはΩ ( n l g n )の比較を行う必要があります。

分析する

決定木では、ルート ノードから到達可能なリーフ ノードまでの最長の単純なパスの長さが、対応する並べ替えアルゴリズムにおける最悪の場合の比較数を表します。したがって、並べ替えアルゴリズムの最悪の場合の比較数は、決定木の高さと同じになります。
すると:
決定木の下限は、比較並べ替えアルゴリズムの実行時間の下限です。 決定木の下限は、比較並べ替えアルゴリズムの実行時間の下限です。決定木の下限、つまり比較並べ替えアルゴリズムの実行時間の下限

具体的な分析:高さhh
の星を考えます。h 、 ll付きl個の到達可能なノードを持つ決定木。n 個の要素入力の比較と並べ替えに対応します。入力データにはn ! n!n !可能な置換。
次の式が得られます:
n ! ⩽ l ⩽ 2 hn!\leqslant l\leqslant 2^h2
この方程式の両辺の対数を取ると、次のようになります: h
⩾ lg ( n ! ) = Ω ( nlgn ) h\geqslant lg(n!)=\Omega(nlgn)hlg ( n ! )=Ω ( n l g n )
ここでの式は、記事
「アルゴリズム入門」の学習 (2) ---- アルゴリズムの時間スケールと関数の成長を


具体的な比較ソートアルゴリズムについては、
『アルゴリズム入門』学習(1) - 挿入ソートとマージソート
『アルゴリズム入門』学習(7) - ヒープソートとプライオリティキュー(C言語)
『アルゴリズム入門』学習(8)----クイックソート(C言語)

おすすめ

転載: blog.csdn.net/weixin_52042488/article/details/126813412