Guruhi talabasining


Partition.  Keyin array ikkiga ajratiladi. Bunda ajratuvchi elementning ( pivot



Yüklə 177,77 Kb.
Pdf görüntüsü
səhifə3/8
tarix16.12.2023
ölçüsü177,77 Kb.
#182740
1   2   3   4   5   6   7   8
mta dedline12

Partition. 
Keyin array ikkiga ajratiladi. Bunda ajratuvchi elementning (
pivot
) chap 
tarafida elementdan kichik qiymatlar, o’ng tarafida elementdan katta qiymatlar 
o’rin olishi kerak. 
Sort. 
So’nggi bosqichda ikki qism tartiblanadi. 
Partition va sort rekursiya ichida ishlaydi. 


Birinchi qadam – aralashtirish haqida 
bu yerda
; keyingi qadamlar – partition 
(ajratish) va sort qanday ishlashi haqida batafil tushuntirishga harakat qilaman. 
Partition va sort 
Aralashtirilgan array: 
[5, 0, 10, 14, 9, 7, 12, 11, 2, 4, 1, 3, 6, 8, 13] 
Ajratuvchi element – 
pivot
‘ni tanlaymiz. Biz arrayni aralashtirganimiz uchun 
birinchi elementning qiymati arraydagi eng katta yoki eng kichik bo’lish ehtimoli 
kam. Shu sababli arrayning birinchi elementi indeksini pivot deb olamiz. Demak 
array uchun pivot = 0. 
Ikki pointerni (elementning indeks nomerini) belgilaymiz. Birinchi pointer i = 1, 
ikkinchi pointer – j = array.length – 1 = 14. 
i >= j bo’lmaguncha katta siklni 
(O)
ishga tushiramiz. 
(a)
Kichkina sikl ichida arr[pivot] > arr[i] shart bajarilishdan to’xtaguncha yoki i 
arrayning ohirgi elementi indeksiga teng bo’lmaguncha i ni oshirib boramiz. 
(b)
Yana bir alohida kichkina sikl ichida arr[pivot] < arr[j] shart bajarilishdan 
to’xtaguncha yoki j array’ning birinchi elementi indeksiga teng bo’lmaguncha j ni 
oshirib boramiz. 
(a) 
va 
(b)
sikllar alohida-alohida (parallel) ishlaydi. Bizning holatda i = 2 va j = 11 
da kichkina sikllar to’xtaydi: 
[
5
, 0, 
10
, 14, 9, 7, 12, 11, 2, 4, 1, 
3
, 6, 8, 13] 
Sababi arr[pivot] arr[i] dan kichkina bo’lib qoldi va arr[pivot] arr[j] dan katta 
bo’lib qoldi. arr[i] va arr[j] o’rnini almashtiramiz: 
[
5
, 0, 3, 14, 9, 7, 12, 11, 2, 4, 1, 10, 6, 8, 13] 
(O)
katta sikl ishlashda davom etadi. Biz (a) va (b) sikllarni qayta ishga tushiramiz. 
Kichkina sikllar i = 3 va j = 10 holatda to’xtaydi. 
[
5
, 0, 3, 

Yüklə 177,77 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8




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