6

n個の要素のバイナリヒープを持ち、さらにn個の要素を挿入したいとします。これに必要な合計時間はどのくらいでしょうか?すでにn個の要素を含むバイナリヒープにn個の要素を挿入する漸近的な時間の複雑さ

1つの挿入がlognをとるので、それはtheta(n logn)だと思います。

+0

私は既存のヒープのサイズが何とか結果を入力する必要があると思います。 –

答えて

3

我々が与えられたと仮定すると:実装標準バイナリヒープHによって実現

  • プライオリティキューを

    • W(N)=ワーストケース(N)=Θ(LG n)が(:配列)
    • Nヒープ

    の現在のサイズに我々は、挿入特性を下記ましたシータ)。 (n)=Θ(lg n)(Θ)であり、W(n)=Ω(lg n)であり、W(n)= 0である。 B(n)= BestCase(n)=Θ(1)(Theta)である。 - > W(N)=Ω(1)、W(N)= O(1)毎場合、我々が持っているためにそう

  • T(N)=Ω(1 )とT(n)= O(lg n)

WorstCaseは新しい最小値を挿入するため、新しいヒープが挿入されます。

BestCaseは、最小限のヒープ(ヒープが最小限のヒープ)の場合は、BIG(更新されたブランチで最大)の値を挿入します(アップヒープは直ちに停止します)。

あなたは既にn個の要素を含む、ヒープ上のn個の一連の操作について尋ねてきた、 それはサイズが大きくなります

from n to 2*n 

何漸近されています...私たちの方程式を簡素化何

n=Θ(n) 
2*n=Θ(n) 

。 (成長が一定の要因であるため、nの成長について心配する必要はありません)。

そこで、我々は動作の "n個の挿入のために、" 持っている:

  • 西(N)= X_for_n_insertions(N)
    • のWi(N)=Θ(nはLG n)が
    • 愛(N)=Θ(nはLG n)が
    • バイ(N)=Θ(n)は、
  • それは "すべてのケース" のため、意味:
    • のTi(N)=Ω(n)とのTi(N)= O(N LG n)が

P.S.オメガΩ記号ThetaΘを表示するには、UTF-8をインストールするか互換性がある必要があります。

0

そのないtheeta(nlogn)...挿入の一部以来順序(nlogn)は、したがって、n個の挿入のためにそれが取る...正確LOGN時間、次に以下を取ることができる時間< = nlogn

= >時間複雑= O(nlogn)

5

与えられた:n個の要素と挿入されるn個以上の要素のヒープ。だから最後には2 * n個の要素があります。ヒープは2つの方法で作成することができます1.連続して挿入し、ヒープを構築します。これらのビルドヒープメソッドを使用すると、 How can building a heap be O(n) time complexity?で説明されているヒープの構築にO(n)時間かかる。 O(n *)と同じです。

関連する問題