Documente Academic
Documente Profesional
Documente Cultură
a1=8
a2=23
a4=65
a3=5
a5=44
a6=33
a7=1
Pasul
a8=6
Fig2.9
n mod evident,la construirea piramidei suntem interesati de elementele a[n / 2], a[n/2-1], ...,
a[1] pentru sirurii cu un numr par de elemente, i elementele a[(n-1) 2], a[(n-1) / 2-1], ...,a[1]
pentru sirurii cu un numr impar de elemente (ca numai aceste sunt elemente eseniale pentru a
limita piramida). Fie i cel mai mare indice, printre indicii de elemente care sunt limitri
importante ale piramidei. Apoi se ia elementul a[i] din arborele,apoi urmeaza procedura de
screening(depistare), care const n faptul c ramura a arborelui este selectata corespunzator, min
(a[2i], a[2i+1]), precum i valoarea a[i] este schimbata cu valoarea elementului corespunztor.
Dac acest element nu este o ramura arborelui, pentru el se face aceiasi procedur etc. Aceste
aciuni sunt realizate succesiv pentru a [i], a [i-1], ..., a [1]. Este uor de observat c rezultatul
este o vizualizare arborescent a piramidei pentru sirul original (succesiune de etape utilizate n
exemplele de sir este prezentat n figurile 2.10 - 2.13).
a1=8
a2=23
a4=6
a3=5
a5=44
a7=1
a6=33
a8=65
Pasul
Fig. 2.10.
a1=8
a2=23
a3=1
a7=5
a6=33
a5=44
a4=6
a8=65
Pasul
Fig. 2.11
a1=8
a2=6
a4=23
a3=1
a5=44
a6=33
a7=5
a8=65
Fig. 2.12.
Pasul
a1=1
a2=6
a4=23
a3=8
a5=44
a6=33
a7=5
a8=65
Pasul
Fig. 2.13.
8 23 5 |65| 44 33 1 6
Pasul 1
8 23 |5| 6 44 33 1 65
Pasul 2
8 |23| 1 6 44 33 5 65
Pasul 3
|8| 6 1 23 44 33 5 65
1 6 8 23 44 33 5 65
Pasul 4
1 6 5 23 44 33 8 65
Tabelul 2.8 arat cum s sortai utiliznd piramide construite.Esena algoritmului este
urmatoarea. Fie i - cel mai mare indice a sirului, pentru care sunt semnificativ condiiile de
piramida. Apoi, incepind cu a[1]pina la a[i],se efectuiaza urmtoarele aciuni. La fiecare pas, se
alege ultimul element al piramidei (n cazul nostru, primul element este selectat a[8]). Se
schimba cu locul cu a[1], apoi pentru a[1]se utilizeaza de screening(depistarea). La fiecare pas,
numrul de elemente din piramida este redus cu 1 (dup prima etap a piramidei sunt considerate
ca elemente ale a[1], a[2], ..., a [n-1], dup a dou a[1] a[2], ..., a [n-2], i aa mai departe, pn
cnd piramida ramine doar un element). Este uor de vazut acest lucru (ilustrat n Tabelul 2.8),
care rezultatul va fi un sir aranjat n ordine descresctoare. Avei posibilitatea s modificai
metoda de construcie a piramidelor i sortarea pentru a obine comenzi n ordine cresctoare,
dac modificai starea unei piramide pe a[i]> = a[2i] si a[1]> = a[2i+1] pentru toate valorile
semnificative a indicelui i..
belul 2.8 Sortarea cu ajutorul piramidei
Piramida initiala
1 6 5 23 44 33 8 65
65 6 5 23 44 33 8 1
Pasul 1
5 6 65 23 44 33 8 1
5 6 8 23 44 33 65 1
65 6 8 23 44 33 5 1
Pasul 2
6 65 8 23 44 33 5 1
6 23 8 65 44 33 5 1
33 23 8 65 44 6 5 1
Pasul 3
8 23 33 65 44 6 5 1
44 23 33 65 8 6 5 1
Pasul 4
23 44 33 65 8 6 5 1
65 44 33 23 8 6 5 1
Pasul 5
33 44 65 23 8 6 5 1
65 44 33 23 8 6 5 1
Pasul 6
44 65 33 23 8 6 5 1
Pasul 7
65 44 33 23 8 6 5 1
Algoritmul sortari utilizand o piramida necesita ndeplinirea ordinea de trepte nxlog n (log binar) n cel mai rau caz, ceea ce l face deosebit de atractiv pentru sortarea tablouri mari.