0
Merge Sort(4で割ったもの)の擬似コードを書く必要があります。時間の複雑さが分かります(Nlog(n )明らかに)。Merge Sortを4で割ったもの - 擬似コードの時間複雑度
これは私が書いたものである:
Mergesort4(A){
If (n <= 1) return (A)
if (n=0) return(infinity) (Big number)
k = (n/4) m=(2n/4) z=(3n/4)
Return Merge4(Mergesort4(A[0..k-1]), Mergesort4(A[k..m-1]),
Mergesort4(A[m..z-1]), Mergesort4(A[z..n-1), A[0..n-1])
}
Merge4 -
マージ関数は2つの配列をマージし、ソートされた要素のための新しい配列を作成XにB、C、D、Rアレイを分割。 私は混乱してしまいどこ
Merge4(B,C,D,R,X){
Merge(B,C,E)
Merge(D,R,T)
Merge(E,T,X)
}
時間の複雑さがある(マージ機能は、わずか2ウェイマージソートのようです)。
明らかに、T(N)= 4T(N/4)(4つの問題に分割)
しかし、私は、分割後に何が起こるかわかりません。
私の最高の推測では、次のようになります。T(N)= 4T(N/4)+ O(n)の
ガイドラインをいただければ幸いです...
O(n)はマージステップから得られますが、基本的に同じです。そう、はい、その用語はO(n)であり、あなたの再発は正しいものです。再帰ツリーにはO(log n)レベルがあり、O(n)はO(n log n)合計に対して各レベルで機能します。 – Patrick87