|
Oʻzbekiston respublikasi oliy va o‘rta maxsusta’lim vazirligi
|
bet | 9/16 | Sana | 15.11.2023 | Hajmi | 29,81 Mb. | | #99092 |
Bog'liq Dilshoda Algoritm mustaqilj = 0 : arr[j] <= pivot boʻlgani uchun i++ bajaring va almashtiring(arr[i], arr[j])
i = 0
arr[] = {10, 80, 30, 90, 40, 50, 70} // Hech qanday oʻzgarish yoʻq, chunki i va j bir xil
j = 1 : arr[j] > pivot bo'lgani uchun hech narsa qilmang
Pivotni arr bilan solishtirish[1]
j = 2 : arr[j] <= pivot bo'lgani uchun i++ bajaring va almashtiring(arr[i], arr[j])
i = 1
arr[] = {10, 30, 80, 90, 40, 50, 70} // Biz 80 va 30 ni almashtiramiz
Pivotni arr bilan solishtiring[2]
j = 3 : arr[j] > pivot bo'lgani uchun hech narsa qilmang // i va arr[] da o'zgarish yo'q.
j = 4 : arr[j] <= pivot boʻlgani uchun i++ bajaring va almashtiring(arr[i], arr[j])
i = 2
arr[] = {10, 30, 40, 90, 80, 50, 70} // 80 va 40 almashtirildi
Pivotni arr bilan solishtirish[4]
j = 5 : arr[j] <= pivot boʻlgani uchun i++ bajaring va arr[i] ni arr[j] bilan almashtiring.
i = 3
arr[] = {10, 30, 40, 50, 80, 90, 70} // 90 va 50 almashtirildi
Pivotni arr bilan solishtiring[6]
Biz tsikldan chiqamiz, chunki j endi yuqori-1 ga teng.
Nihoyat, arr[i+1] va arr[yuqori] (yoki pivot) almashish orqali pivotni to'g'ri joyga qo'yamiz.
arr[] = {10, 30, 40, 50, 70, 90, 80} // 80 va 70 almashtirildi
arr[i+1] ni pivot bilan almashtiring
Endi 70 o'z joyida. 70 dan kichik barcha elementlar undan oldin va 70 dan katta barcha elementlar undan keyin joylashgan.
Tez tartiblash rekursiv funktsiya bo'lgani uchun biz chap va o'ng bo'limlarda bo'lim funksiyasini qayta chaqiramiz
Pivotning chap tomonini takroriy tartiblash
O'ng tomonda yana qo'ng'iroq qiling va 80 va 90 ni almashtiring
Pivotning o'ng tomonini takroriy tartiblash
|
| |