|
O‘zbekistonda fanlararo innovatsiyalar va 8- son ilmiy tadqiqotlar jurnaliBog'liq Raxmonova M.R.O‘ZBEKISTONDA
FANLARARO
INNOVATSIYALAR
VA
8-
SON
ILMIY
TADQIQOTLAR
JURNALI
20.05.2022
63
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]
4-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]
5-rasm. Kiritish usuli (insertion sort)
Kiritish
usulining
algoritmi
quyidagicha:
InsertionSort (Arr, N) // Arr is an array of size N.
{For ( I:= 2 to N ) // N elements => (N-1) pass
{insert_at = I; // Find suitable position insert_at, for Arr[I]
item = Arr[I]; J=I-1;
While ( J ? 1 && item < Arr[J] )
|
| |