10 最大ヒープが償却時間で完了するように、最大ヒープの潜在的な関数を理解する手助けが必要です。潜在的な方法をよく理解していないことを付け加えておきます。O (1 )O(1) 抽出のコストを削減するために、挿入関数はさらに「支払う」必要があることを知っています。これは、ヒープの高さに関するものでなければなり(if log (n )⌋がヒープの高さを与える場合挿入は2 log (n )または∑ n k = 1 2 log (k ))⌊ ログ(n )⌋⌊log(n)⌋2 ログ(n )2log(n)Σんk = 12 ログ(k )∑k=1n2log(k) data-structures runtime-analysis heaps amortized-analysis — アンドレイ ソース
13 以下を試してください: ヒープHの要素iの重みは、対応するバイナリツリーでのその深さです。したがって、ルートの要素の重みは0で、その2つの子の重みは1などです。潜在的な機能として定義するw私wi私iHH Φ (H)= ∑I ∈ H2 w私。Φ(H)=∑i∈H2wi. ddlog(n)log(n)2d2dO(1)O(1)O(logn)O(logn)Φ(H)Φ(H)O(log(n)+Δ(Φ(H)))=O(logn)O(log(n)+Δ(Φ(H)))=O(logn) 2log(n)2log(n)O(1)O(1) 潜在的な機能に関する一般的な質問がある場合は、これを別の質問として提示する必要があります。 — A.シュルツ ソース Δ(Φ(H)))Δ(Φ(H)))ΔΔ Δ(Φ(H))Δ(Φ(H))2log(n)2log(n) O(1)の修理はどうですか?ヒープの修復における潜在的な機能の使用は何ですか?明確にして — いただけ O(logn)O(logn)O(1)O(1) @ A.Schulzつまり、これは本質的に、潜在的な関数が2logn減少するたびに(修復時に等しく増加することもしないこともある)、抽出操作がn回行われることを意味します。最終的にツリーにノードがなくなるため、そのようなものの全体的な複雑さは一定の時間になります。私は正しいですか? — Sohaib 2015年