Professional Documents
Culture Documents
Kreiranje Hipa Od Niza
Kreiranje Hipa Od Niza
Hip možemo kreirati dodavanjem jednog po jednog elementa niza u hip. Na početku hip sadrži prvi element
niza, a zatim ga proširujemo i na taj način kreiramo hip odozgo nadole. Prilikom dodavanja i-tog elementa prvi
deo niza do pozicije i predstavlja hip, a elementi od pozicije i do kraja niza još nisu uključeni u hip.
Sledi ilustracija kreiranja hipa za niz 4, 7, 3, 10, 2. U binarnom drvetu čvorovi koji su deo hipa označeni su
punom linijom, a ostali elementi niza prikazani su isprekidanom linijom.
Prilikom dodavanja elementa 7 u hip potrebno je taj element „pomeriti naviše", jer je vedi od vrednosti koju
sadrži njegov predak.
Element 3 je manji od vrednosti pridružene pretku, pa njegovo dodavanje ne prouzokuje razmene vrednosti u
hipu.
Dodavanjam elementa 10 izvršavaju se razmene sadržaja čvorova hipa kao što je prikazano na slici.
Hip možemo formirati odozdo nagore. Druga polovina elemenata niza a(a*n/2+,a*n-1]) nema potomke, pa
svaki od tih elemenata možemo posmatrati kao jednočlani hip. Preostale članove niza analiziramo, i to
slededim redom a*n/2-1], ,a[1], a[0]. Svaki od njih postaje koren drveta kome su i desno i levo poddrvo hip i
tako spajamo dva hipa u jedan korišdenjem metode urediHip. Prilikom analize i-tog elementa elementi niza
do i-tog još nisu uključeni u neki hip, a elementi od pozicije i do kraja pripadaju nekom hipu. Nakon analize
svih elemenata ostaje jedan hip. Opisani način formiranje hipa realizovan je metodom napraviHip2.
Sledi ilustracija kreiranja hipa odozdo nagore za niz 4, 7, 3, 10, 2. U binarnom drvetu čvorovi koji su deo nekog
hipa označeni su punom linijom, a ostali elementi niza prikazani su isprekidanom linijom. Na početku,
poslednja tri elementa, 3, 10 i 2, predstavljaju tri jednočlana hipa.
Dodavanjem elementa 7 spajamo dva jednočlana hipa (10 i 2) u jedno drvo koje uređujemo tako da postane
hip.
Preostaje nam da dodamo element 4 i na taj način spojimo dva hipa (tročlani hip 10, 7, 2, i jednočlani hip 3) u
drvo, koje uredimo tako da postane hip.
Kreiranje hipa odozdo nagore je efikasniji način jer je veliki broj čvorova na dnu drveta, a manji broj pri vrhu,
pa se dobija brže rešenje ako minimiziramo obradu čvorova na dnu.