Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov




Download 4,61 Mb.
Pdf ko'rish
bet40/111
Sana18.05.2024
Hajmi4,61 Mb.
#241929
1   ...   36   37   38   39   40   41   42   43   ...   111
Bog'liq
ALGORITMLAR VA MA‟LUMOTLAR STRUKTURALARI

for (i = 0; i < n-1; i++) 

swapped = false; 
for (j = 0; j < n-i-1; j++) 

if (arr[j] > arr[j+1]) 

swap(&arr[j], &arr[j+1]); 
swapped = true; 


if (swapped == false) 
break; 


 
Sheyker saralashi
. Sheyker (kokteyl) saralashi - bu Pufakchali 
(Bubble Sort) algoritmining varianti. Bubble sort algoritmi har doim 
chapdan elementlarni aylanib oʻtadi va birinchi iteratsiyada eng katta 
elementni toʻgʻri holatiga, ikkinchisida esa ikkinchi takrorlashda va 


56 
hokazo. Kokteyl saralash berilgan massiv orqali har ikki yoʻnalishda 
ham muqobil ravishda harakatlanadi. 
Algoritmning har bir takrorlanishi 2 bosqichga boʻlinadi: 
Birinchi bosqich massivni xuddi Bubble Sort singari chapdan 
oʻngga aylantiradi. Sikl davomida qoʻshni elementlar taqqoslanadi va 
agar chapdagi qiymat oʻngdagi qiymatdan katta boʻlsa, qiymatlar 
almashtiriladi. Birinchi takrorlash oxirida eng katta son massivning 
oxirida boʻladi. 
Ikkinchi bosqich massivni qarama-qarshi yoʻnalishda aylantiradi - 
bu eng soʻnggi saralangan elementdan oldin va massivning boshiga 
qaytish. Bu yerda qoʻshni elementlar taqqoslanadi va agar kerak boʻlsa 
almashtiriladi. 
Quyidagi massivni koʻrib chiqaylik (6 1 4 2 8 0 2). 
Birinchi oldinga oʻtish: 
(6 1 4 2 8 0 2)? (1 6 4 2 8 0 2), 6> 1 bilan almashtirish 
(1 6 4 2 8 0 2)? (1 4 6 2 8 0 2), 6> 4 bilan almashtirish 
(1 4 6 2 8 0 2)? (1 4 2 6 8 0 2), 6> 2 bilan almashtirish 
(1 4 2 6 8 0 2)? (1 4 2 6 8 0 2) 
(1 4 2 6 8 0 2)? (1 4 2 6 0 8 2), 8> 0 bilan almashtirish 
(1 4 2 6 0 8 2)? (1 4 2 6 0 2 8), 8> 2 bilan almashtirish 
Birinchi oldinga oʻtishdan soʻng, massivning eng katta elementi 
massivning oxirgi indeksida boʻladi. 
Birinchi orqaga oʻtish: 
(1 4 2 6 0 2 8)? (1 4 2 6 0 2 8) 
(1 4 2 6 0 2 8)? (1 4 2 0 6 2 8), 6> 0 bilan almashtirish 
(1 4 2 0 6 2 8)? (1 4 0 2 6 2 8), 2> 0 bilan almashtirish 
(1 4 0 2 6 2 8)? (1 0 4 2 6 2 8), 4> 0 bilan almashtirish 
(1 0 4 2 6 2 8)? (0 1 4 2 6 2 8), 1> 0 bilan almashtirish 
Birinchi orqaga uzatgandan soʻng, massivning eng kichik elementi 
massivning birinchi indeksida boʻladi. 


57 
Ikkinchi oldinga oʻtish: 
(0 1 4 2 6 2 8)? (0 1 4 2 6 2 8) 
(0 1 4 2 6 2 8)? (0 1 2 4 6 2 8), 4>2 bilan almashtirish 
(0 1 2 4 6 2 8)? (0 1 2 4 6 2 8) 
(0 1 2 4 6 2 8)? (0 1 2 4 2 6 8), 6>2 bilan almashtirish 
Ikkinchi orqaga oʻtish: 
(0 1 2 4 2 6 8)? (0 1 2 2 4 6 8), 4>2 bilan almashtirish 
Endi, massiv allaqachon saralangan, ammo bizning algoritmimiz 
tugallanganligini bilmaydi. Algoritm bu saralanganligini bilish uchun 
barcha oʻtishlarni hech qanday almashtirishsiz bajarishi kerak. 
(0 1 2 2 4 6 8) ? (0 1 2 2 4 6 8) 
(0 1 2 2 4 6 8) ? (0 1 2 2 4 6 8) 
Quyida yuqoridagi algoritmning bajarilishi keltirilgan: 

Download 4,61 Mb.
1   ...   36   37   38   39   40   41   42   43   ...   111




Download 4,61 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Samarqand davlat universiteti o. R. Yusupov, I. Q. Ximmatov, E. Sh. Eshonqulov

Download 4,61 Mb.
Pdf ko'rish