rasm. ASCII bo’yicha saralash.
O‘ZBEKISTONDA FANLARARO INNOVATSIYALAR VA
8-SON ILMIY TADQIQOTLAR JURNALI 20.05.2022
Dasturlashda turli xil saralash algoritmlar mavjud. Masalani turi mazmuniga qarab turib saralash algoritmlarning biri qo’llaniladi. Keling eng ko’p qo’llaniladigan saralash algoritmlarini ko'rib chiqamiz.
Eng ko’p qo’llaniladigan saralash algoritmlaridan biri bu Pufakchali (bubble sort) saralash algoritmidir. Pufakchali saralash algoritmi har bir o'tishda qo'shni elementlarni qayta-qayta taqqoslaydi va almashtiradi (agar kerak bo'lsa) (2- rasm). Bubble Sortning i-o'tish joyida (o'sish tartibida) oxirgi (i-1) ta elementlar allaqachon tartiblangan bo’ladi va i-eng katta element (N-i)-pozitsiyaga joylashadi.[2]
rasm. Pufakchali saralash algoritmi.
Pufakchali saralash algoritmi dastur listingi:
BubbleSort (Arr, N) // Arr n o’lchamli massiv
{For ( I:= 1 to (N-1) )
{For ( J:= 1 to (N-I) )
{If ( Arr [J] > Arr[J+1] ) Swap( Arr[j], Arr[J+1] );}}}
Keyingi saralash algoritmi bu Tanlash usuli (selection sort). Tanlash usuli - eng kichik elementni tanlaydi va i-pog'onaga joylashtiradi (3-rasm). Ushbu algoritm massivni ikki qismga ajratadi: tartiblangan (chap) va tartiblanmagan (o'ng) pastki qator. U tartiblanmagan pastki qatordan eng kichik elementni tanlaydi va shu pastki qatorning birinchi holatiga (oʻsish tartibida) joylashtiradi. Keyingi eng kichik elementni qayta-qayta tanlaydi.[2]
rasm. Tanlash usuli (selection sort) Tanlash usuli dasturlash tilida quyidagicha yozish mumkin: SelectionSort (Arr, N)
{For ( I:= 1 to (N-1) ) {
min_index = I;
For ( J:= I+1 to N )
{If ( Arr [J] < Arr[min_index] ) min_index = J;}
If (min_Index != I)
O‘ZBEKISTONDA FANLARARO INNOVATSIYALAR VA
8-SON ILMIY TADQIQOTLAR JURNALI 20.05.2022
Swap ( Arr[I], Arr[min_index] ); }}
Uchinchi algoritm bu Yig’ish usuli (heap sort). Algoritm ma'lumotlarni ikkilik daraxt (ikkilik to'p) shaklida tuzadi. Elementlarni joylashtirishning ikkita varianti mavjud - max-heap (ota-onaning qiymati bolalarning qiymatlaridan katta) va min- heap (ota-onaning qiymati bolalarning qiymatlaridan kamroq). Eng katta yoki eng kichik element (turiga qarab) daraxtning ildiziga joylashtiriladi (4-rasm). U to'plamning oxirgi elementi bilan almashtiriladi va massivning oxiriga joylashtiriladi. Uyum hajmi 1 ga kamayadi, shundan so'ng u qayta tiklanadi. Uyum hajmi 1 dan katta bo'lsa, tsikl takrorlanadi.[3]
rasm. Yig’ish usuli (heap sort) Yig’ish usuli dasturlash tilida quyidagicha yozish mumkin: heapify(array)
Root = array[0]
Largest = largest( array[0] , array [2 * 0 + 1]. array[2 * 0 + 2]) if(Root != Largest)
Swap(Root, Largest)
Keyingi saralash algoritmi bu Kiritish usulidir (5-rasm insertion sort). Kiritish algoritmi - bu oddiy tartiblash algoritmi bo'lib, u karta o'yinidagi kartalarini saralash usuliga o'xshab ishlaydi. Massiv deyarli tartiblangan va tartiblanmagan qismlarga bo'lingan. Saralanmagan qismdan qiymatlar tanlanadi va tartiblangan qismning to'g'ri joyiga joylashtiriladi.[2]
Dostları ilə paylaş: |