1

CLRS 演習: 6.5-8

この操作は、 node の項目をheap からHEAP-DELETE(A,i)削除します。n 要素の最大ヒープに間に合うように実行される の実装を提供します。iAHEAP-DELETEO(lg n)

ここに画像の説明を入力

A[10]={84,22,19,21,3,10,6,5,20}入力(インデックスは1から始まる)とA[6]=10削除されたアルゴリズムが間違っているのだろうか。最後のノードを で置き換えると、A[6]ヒープ プロパティに違反し、親の値が見落とされます。

このためのアルゴリズムを作成しましたが、それが正しく機能するかどうか、またはどこが間違っているかを知りたいと思いました。

HEAP-DELETE(A,i)
  A[i]=A[A.heapsize]
  A.heapsize-=1
  while i>1 and A[parent(i)]<A[i]
    swap A[i] with A[parent(i)]
    i=parent(i);
4

4 に答える 4