3
CLRSのd-aryヒープ問題
次の問題(質問1〜3)を解決しているときに混乱しました。 質問 D進ヒープは、バイナリヒープ似ているが、(一つの可能な例外を除いて)は、非リーフノードが有するD子供の代わりに、2人の子供。 配列のd- aryヒープをどのように表現しますか? n要素とd要素のd- aryヒープの高さは、nとdで何ですか? d -ary max-heap でのEXTRACT-MAXの効率的な実装を提供します。実行時間をdおよびnで分析します。 d -ary max-heap でのINSERTの効率的な実装を提供します。実行時間をdおよびnで分析します。 INCREASE-KEY(A、i、k)の効率的な実装を提供します。これは、k <A [i] = kの場合にエラーにフラグを立て、d進行列のヒープ構造を適切に更新します。実行時間をdおよびnで分析します。 私の解決策 配列A [ a1。。aん]あ[a1。。aん]A[a_1 .. a_n] ルートレベル1レベル2レベルk:a1:a2… a2 + d− 1:a2 + d… a2 + d+ d2− 1⋮:a2 + ∑i = 1k − 1d私… a2 + ∑i = 1kd私− 1ルート:a1レベル1:a2…a2+d−1レベル2:a2+d…a2+d+d2−1⋮レベルk:a2+Σ私=1k−1d私…a2+Σ私=1kd私−1\qquad …