1800320376
liczba elementów tablicy wejściowej jest przechowywana poza nią. Tak więc algorytmy, które nie działają w miejscu wymagają dodatkowej pamięci.
Heap Sort cechuje się również tym, iż jest niestety algorytmem niestabilnym. Oznacza to, iż posiadając 2 lub więcej identycznych wartości, nie sortuje ich w kolejności wejściowej.
2. Ciało algorytmu
Po utworzeniu struktury kopca następuje właściwe sortowanie. Polega ono na usunięciu wierzchołka kopca, zwierającego element maksymalny dla typu max (minimalny dla typu min), a następnie wstawieniu w jego miejsce elementu z końca kopca i odtworzenie porządku kopcowego (Max-Heapify). W zwolnione w ten sposób miejsce, zaraz za końcem zmniejszonego kopca wstawia się usunięty element maksymalny. Operacje te powtarza się aż do wyczerpania elementów w kopcu. Wygląd tablicy można tu schematycznie przedstawić następująco:
| Kopiec elementów do posortowania | Posortowana tablica |
Tym razem kopiec kurczy się, a tablica przyrasta (od elementu ostatniego do pierwszego). Także, tu złożoność usuwania elementu połączonego z odtwarzaniem porządku kopcowego, ma złożoność logarytmiczną, a zatem złożoność tej fazy to 0(n ■ log w).
Algorytm można również opisać w „pseudo kodzie” w celu implementacji w różnych językach programowania, oto on:
Heapsort(A)
1 Build-Max-Heap(A)
2 for i <-lenght[A] downto 2
3 do zamień A[l] <->A[/]
4 heap-size[A\ <- heap-size[A] - 1
5 Max-Heapify(A, 1)
Build-Max-Heap(A)
1 heap-size[A\ <- lenght[A]
2 for i <- lenght[A] div 2 downto
3 do Max-Heapify(A, /)
Max-Heapify(A, i)
1 / <- Left(i)
2 r <- Right(/)
3 if / < heap-size[A] i A[/] > A[/]
4 then largest <-l
5 else largest <— i
6 if /• < heap-size[A] i A[r] > A[largest]
7 then largest <-r
8 if largest * i
9 then zamień A[/] <-> A[largest]
10 Max-Heapify(A, largest)
3
Wyszukiwarka
Podobne podstrony:
Image364 4.6.3.2. Dekodery wielopoziomowe Jeśli liczba bitów kodu wejściowego jest większa od liczbyRadixSort // elem - liczka możliwych wartości składowych elementu tablicy wejściowej (obiektu) // elIMGw12 jest zaspokojeniem określonej osobistej potrzeby czy dążenia, które nie jest postrzegane jako1 GR 1. 1 prawo Netwona (I) Ciało, na które nie działa żadna siła (lub gdy siła wypadkowa jest równaUntitled16 186 II. Klasyczna myśl ekonomia, Malthus i Marks prognozy jest mniejsze od jedności. TakNie do końca jest jasny stosunek między tak nazwanymi zasadami: • Najczęściej nieCCF20090605 060 Pouczające jest prześledzenie starań Kartezjusza o wytropienie siedziby „ja”, któreDSC00643 Obok pierwiastków, których rola jest znana, występują jednak w roślinach i takie pierwiastkukształtowane pokrycie. Jest ono zrobione ze specjalnego miękkiego tworzywa, które nie przepuszscan 8 (4) 2.2. DYWERGENCJA I ROTACJA POLA ELEKTROSTATYCZNEGO zeru, ponieważ E jest prostopadłe do d23 (785) kasia: A ile chcesz mieć, żeby zacząć żyć? Bo on jest uczciwszy. On żyje tak, jak chce, a tCIMG3368 (2) tę przestrzeń zamyka, ale równocześnie nie jest ślepą ścianą, lecz ażurem, a więc macierz kwadratowa, mająca jedynki na przekątnej głównej i zera poza nią, jest to element neutralny* w karcie obiegu dokumentu wszystkie elementy pracy poza manipulacją, oraz jest przechowywanie a niwięcej podobnych podstron