Dərs vəsaiti baki -2018 azərbaycan döVLƏt neft və SƏnaye universiteti



Yüklə 0,88 Mb.
səhifə24/33
tarix25.12.2023
ölçüsü0,88 Mb.
#194870
növüDərs
1   ...   20   21   22   23   24   25   26   27   ...   33
C fakepath5.ALQ HAZd rslik

4) Ağacvari nizamlama (tree sort).

Şək. 5.1. 1,3,4,6,7,8,10,13,14 ədədlərini nizamlamaq üçün binar ağaclar
Əvvəlcə bir anlayışı daxil edək. Binar axtarış ağacı dedikdə elə ikili ağac başa düşülür ki, bunun düyünlərində ədədlərin yerləşdirilməsi qanunauyğunluğu belədir: hər dyündən sol alt ağacda yerləşən ədədlərin hər biri baxılan düyündəki ədəddən kiçikdir, bundan sağ alt ağacda yerləşən ədədlərin hər biri isə bundan ya böyükdür, ya da buna bərabərdir. Şəkil 5.1.-də belə ağacların qurulmasına aid iki nümunə təsvir edilib, bunların hər birində eyni ədədlərdən istifadə olunub. Əgər hər bir düyün üçün alt ağacların hündürlükləri fərqi birdən böyük deyisə, belə ağac balanslaşmış adlanır. Balanslaşmış ağacları bəzən bunları kəşf edən şəxslərin şərəfinə AVL-ağac adlandırırlar (Q.M.Adelson-Velskiy, E.M. Landis). Şəkil 5.1. а)-da balanslaşmış ağac, 5.1. b)-də balanslaşmamış ağac təsvir edilib. Şəkillərdən göründüyü kimi, ağacların “yarpaq”larından başlayaraq onun kökünə doğru konkatenasiya əməliyyatını yerinə yetirsək, ədədlərin artma sırasında nizamlanması alınar. Ağacvari nizamlamanı yerinə yetirmək üçün verilmiş ədədlər massivi əsasında əvvəlcə ağac modelini qurmalıyıq, sonra ağacın ətəyindən başlayaraq nizamlamanı yerinə yetirməliyik. Binar ağac rekursiv və ya qeyri-rekursiv qaydada qurula bilər. Əgər ağac balanslaşmış olarsa, nizamlama üçün istifadə olunan əməliyyatların sayı O(n log2 n) düsturu ilə qiymətləndirilir, əksinə ağac maksimum qeyri-balanslaşmış olarsa, onda nizamlama üçün istifadə olunan əməliyyatların sayı O( n2) düsturu ilə qiymətttləndirilir.

5.2. Rekursiv nizamlama üsulları

1) Sürətli nizamlama üsulu (Xoar üsulu). Bu üsul rekursiv hesablamalara əsaslanır. Üsulun mahiyyəti belədir: biz əvvəlcə verilmiş ardıcıllığının birinci elementini, yəni x1-i götürüb bunu yeni siyahıya yazırıq, bu siyahını S ilə işarə edək. x1-dən sonrakı elementləri bir-bir oxuyub x1 ilə müqayisə edirik: əgər element bundan kiçikdirsə, onu x1-dən sol tərəfə, böyükdürsə, sağ tərəfə yazırıq. Soldakı siyahını S1, sağdakını S2 ilə işarə edək. Bu proseduru S1-ə, sonra S2-yə tətbiq edirik. Nəhayət, proses o məqama qədər davam edir ki, qurulan siyahıların hər biri yalnız bir elementdən ibarətdir, bundan sonra siyahıların aşağıdan yuxarı birləşdirilməsi (konkatenasiya) əməliyyatı yerinə yetirilir və nəticədə nizamlanmış siyahı alınır. Konkatenasiya əməliyyatının mühüm cəhətlərindən biri bundan ibarətdir ki, bu əməliyyat zamanı birləşdirilən siyahıların elementləri bir-biri ilə müqayisə olunmur, bu səbəbdən birləşdirmə əməliyyatı sürətlə yerinə yetirilir.
Misal: 10,18,5,20,4,16,12,8,19,6,15,14,9 ardıcıllığını sürətli nizamlama üsulu ilə nizamlayaq.
5 ,4,8,6,9, 10, 18,20,16,12,19,15,14

4 ,5, 8,6,9 16,12,15,14, 18, 20,19




6, 8, 9 12,15,14, 16, Ø, 19,20, Ø,


Ø, 12, 15,14

14,15, Ø


Nəticədə binar ağac qurulur. Qurulan ağac əsasında ardıcıllıqların aşağıdan yuxarıya konkatenasiyası əməliyyatını yerinə yetirək:
1) S13 U15 US14 = 14,15;
2) S11U12 U14,15=12, 14,15;
3) 12, 14,15 U16 U S8= 12, 14,15,16;
4) S9 U 20 U S10 = 19,20;
5) 12, 14,15,16 U 18U 19,20=12, 14,15,16 , 18,19,20;
6) S5U8 US6=6,8,9;
7) S1U5 U 6,8,9=4,5,6,8,9;
8) 4,5,6,8,9 U10U 12, 14,15,16,18,19,20=4,5,6,8,9,10,12, 14,15,16 , 18,19,20;
Yuxarıdakı hesablamalarda U və Ø işarələri müvafiq surətdə konkatenasiya əməliyyatını və boş çoxluğu göstərir. Sürətli nizamlama alqoritminin prosedurunu SN(i,j) ilə işarə edək.
SN(1,n) proseduru:
l:=1, r:=n;
l r olarsa yerinə yetir:
m:=l qəbul et və (al, al+1,...,ar) siyahısını S1 və S2
hissələrinə böl; S1=( al, al+1,...,aj ) və S2=(aj+1,...,ar), burada S1= { ai: ai al, i l}, S2={ ai: ai al };
SN(1,j), am və SN(j+1, r) hissələrini konkatenasiya et;
Prosedurun sonu.

Yüklə 0,88 Mb.

Dostları ilə paylaş:
1   ...   20   21   22   23   24   25   26   27   ...   33




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin