web-dev-qa-db-ja.com

kウェイマージソートの時間の複雑さはなぜO(nk ^ 2)ですか?

私はアルゴリズム分析に比較的慣れていないので、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)

なぜこれがそうなのか、誰か説明できますか?または、この質問に対する私のアプローチを修正します。

5
K_K

再帰の深さは_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)

1
ratchet freak