私はアルゴリズム分析に比較的慣れていないので、k方法マージソートで遭遇したコースラで関連コースを受講しています。
2ウェイマージソートの時間の複雑さはn log2 n
、3ウェイマージソートはn log3 n
および4つの方法のマージソートはn log4 n
。
ただし、k方向の場合、複雑度はnk ^ 2です。これは、アルゴのマージ部分に注意を払うためです。 (2n + 3n + 4n...kn)
。
しかし、2、3、4ウェイアルゴリズムの場合、1つの関数の再帰呼び出しに注意を払います。 (2T(n/2) + c.n)
。
なぜこれがそうなのか、誰か説明できますか?または、この質問に対する私のアプローチを修正します。
再帰の深さは_log n/log k
_、
要素ごとの_n*log k
_の最小ヒープを使用して、コスト__log k
_をマージします
したがって、私たちはT(n) = n* log k + K* T(n/k)
に到達します(私が間違っていない限り)_n log n
_( 実際にはn (c_1/k+log(n))= n/k + n*log(n)
になりますが、_n/k
_は重要ではなくなります大きなO)