Strukture podataka i algoritmi
7.2 Heap Sort

Prilikom ranije diskusije o gomilama, primetili smo da one, pored koriscenja kao prioritetni redovi, daju i algoritam za sortiranje:

  1. konstruisi gomilu,
  2. dodaj svaki objekat na nju (cuvajuci svojstvo gomile!),
  3. kad su svi objekti dodati, brisi ih jedan po jedan (cuvajuci svojstvo gomile prilikom brisanja).
I dodavanje i brisanje sa gomile su O(logn) operacije. Potrebno je da izvrsimo n dodavanja i brisanja, sto daje O(nlogn) algoritam. Razmotricemo jos jedan efikasan algoritam za sortiranje, Quick Sort, a zatim cemo ga uporediti sa Heap Sort-om.

Animacija

Sledeca animacija koristi malu modifikaciju prethodnog pristupa za direktno sortiranje pomocu gomile. Primeticete da ona najpre smesta sve objekte u niz, tada uzima objekte sa dna gomile i uspostavlja svojstvo gomile, umesto da odrzava svojstvo gomile prilikom dodavanja svakog objekta, kako gornji algoritam nalaze.

Obratite paznju da animaciju pokazuje podatke

Oba predstavljanja su, naravno, ekvivalentna.

Animacija algoritma Heap Sort
Ovu animaciju je napisao Woi Ang.
Posaljite komentare na adresu
morris@ee.uwa.edu.au

Dalje na Quick Sort
Nazad na Sadrzaj
©
John Morris, 1998. Prevod sa engleskog, Dragan Stevanovic, 2002.