Вы находитесь на странице: 1из 13

1

1
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
I1rl|1 k|1r|l|ms
1. |aserl|aa
2. 8e|etl|aa
3. Baaa|e
4. 8|e||
5. a|t|
. Vere
2
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
I1rl|1 z|1r|l|ms
Velaae |aserl|aa, se|etl|aa aaa aaaa|e sarl mem||||| warsltase
jerIarmaate yaa aera||a| aaaral||
Aja|a| a|ar|lma aeraas|s tamjar|saa yaa lertejal ?
D(a|aal
Veresarl aaa a|t|sarl
2
3
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|1sz 1| 1|sss1rl
Ambil sebuah pivot.
Bagi menjadi 2 : bagian yang kurang dari dan bagian yang lebih
dari pivot
Urutkan masing-masing bagian secara rekursif
4
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|1sz 1| 1|sss1rl
1. 8e|ect. j|t| aa e|emeal
2. 0|v|e. rearraae e|emeals sa
l|al x gees te |ts t|aa| pes|t|ea
f
3. kecar aa 0eaaer. retars|ve|y
sarl
3
5
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
1|sss1rl k|1r|l|m
V|sa| a|aer||aa seaaa| array A mem||||| a e|emea (|aleerl
j = , r = a1
- Array A|j.. r} a|jarl|s| meajaa| aaa aaaemjly saaarray .
A|j..} aaa A|-1..r}
8e|ara| e|emea aa|am array A|j..} |ea|| |et|| aar| se|ara| e|emea
aa|am array A|-1..r}
- 8e|ara| saa array a|aral|aa setara re|ars|I aeaaa tara
memaa|| Iaas| quicksort()
6
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
1|sss1rl |11s
Quicksort(A, p, r)
{
if (p < r)
{
q = Partition(A, p, r);
Quicksort(A, p, q);
Quicksort(A, q+1, r);
}
}
4
7
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|zrl|l|11
Ter|||al aa|wa, se|ara| a|s| lerjaa| aa|am Iaas|
partition()
- Rearraaes saaarray setara |a j|ate
- Has|| a|||r.
Daa saaarray
8e|ara| e|emea jaaa saaarray jerlama se|ara| e|emea jaaa saaarray
|eaaa
- Relara va|ae aeraja |aaez aar| e|emea "j|val" -yaa mem|sa||aa
|eaaa saaarray lsa
bow Jo ,oe seeeose we /me/emeot t//s?
8
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|zrl|l|11 |1 W1r1s
Parl|l|aa(A, j, rl.
- P|||| seaaa| e|emea yaa aerl|aaa| seaaa| "j|val" (w//c/?l
- Peta| array meajaa| aaa aa|aa, A|j..|} aaa A|j..r}
8e|ara| e|emeal aa|am A|j..|} <= j|val
8e|ara| e|emeal aa|am A|j..r} = j|val
(h0w 1|
- |atremeal | aal|| A||} = j|val
- Detremeal j aal|| A|j} <= j|val
- J||a | < j, ma|a 8waj A||} aaa A|j}
- J||a l|aa|, relara j
- Rejeal aal|| | = j
5
9
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
|zrl|l|11 |11s
Partition(A, p, r)
x = A[p]; //pivot=elemen posisi pertama
i = p ; //inisialisasi
j = r ;
repeat
while(A[j] > x)
j--;
while(A[i] < x)
i++;
if (i < j){
Swap(A, i, j);
j--;
i++
}
else
return j;
until i >= j
10
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
12 9 35 11 3 17 23 15 31 20
QuickSort(0,9)
- X = P!vOT merupakan indeks ke -0
- P!vOT = 12
- terdapat variabel i dan j , i=0 , j=9
- variabel i untuk mencari bilangan yang lebih dari atau
sama dengan P!vOT. Cara kerjanya : selama Data[i| <
P!vOT maka nilai i ditambah.
- variabel j untuk mencari bilangan yang lebih kecil dari
atau sama dengan P!vOT. Cara kerjanya : selama
Data[j| > P!vOT maka nilai j dikurangi
6
11
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
12 9 35 11 3 17 23 15 31 20
PIVOT = 12
i = 0 j = 4
i < j maka SWAP
3 9 35 11 12 17 23 15 31 20
SWAP
PIVOT = 12
i = 1 j = 3
i < j maka SWAP
3 9 11 35 12 17 23 15 31 20
SWAP
q = Partition(0,9)
12
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
PIVOT = 12
i = 3 j = 2
i < j {False) NO SWAP
Return j = 2
Q = Partisi = 2
QuickSort(0,9)
QuickSort(3,9) QuickSort(0,2)
7
13
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
3 9 11
35 12 17 23 15 31 20
QuickSort(0,2)
PIVOT = 3
i = 0 j = 0
i < j {False) NO SWAP
Return j = 0
Q = Partisi = 0
QuickSort(0,0) QuickSort(1,2)
14
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
PIVOT = 11
i = 1 j = 2
i < j SWAP
QuickSort(1,2)
3
11 9
35 12 17 23 15 31 20
PIVOT = 11
i = 2 j = 1
i < j NO SWAP
Return j = 1
Q = Partisi = 1
SWAP
8
15
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
QuickSort(1,2)
QuickSort(1,1) QuickSort(2,2)
QuickSort(3,9)
PIVOT = 35
i = 3 j = 9
i < j SWAP
3
11
9 35 12 17 23 15 31 20
16
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
20 12 17 23 15 31 35
PIVOT = 35
i = 9 j = S
i < j NO SWAP
Return j = S
Q = Partisi = S
QuickSort(3,9)
QuickSort(3,8) QuickSort(9,9)
3
11
9
9
17
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
20 12 17 23 15 31 35
QuickSort(3,8)
PIVOT = 20
i = 3 j = 7
i < j SWAP
15 12 17 23 20 31 35
PIVOT = 20
i = 6 j = 5
i < j NO SWAP
Return j = 5
Q = Partisi = 5
3
11
9
3
11
9
SWAP
18
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
QuickSort(3,8)
QuickSort(6,8) QuickSort(3,5)
PIVOT = 15
i = 3 j = 4
i < j SWAP
12 15 17 23 20 31 35 3
11
9
SWAP
10
19
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
PIVOT = 15
i = 4 j = 3
i < j NO SWAP
Return j = 3
Q = Partisi = 3
QS(3,5)
QS(+,5) QS(3,3)
q = 3
12 15 17 23 20 31 35 3
11
9
20
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
QS(+,5)
PIVOT = 15
i = 4 j = 4
i < j NO SWAP
Return j = 4
Q = Partisi = 4
QS(+,5)
QS(5,5) QS(+,+)
q = +
12 15 17 23 20 31 35 3
11
9
QuickSort(6,8)
PIVOT = 23
i = 6 j = 7
i < j SWAP
12 15 17 20 23 31 35 3
11
9
11
21
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
QS(6,8)
QS(7,8) QS(6,6)
q = 6
PIVOT = 23
i = 7 j = 6
i < j NO SWAP
Return j = 6
Q = Partisi = 6
12 15 17 20 23 31 35 3
11
9
QS(7,8)
PIVOT = 23
i = 7 j = 7
i < j NO SWAP
Return j = 7
Q = Partisi = 7
QS(7,8)
QS(8,8) QS(7,7)
22
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
QuickSort(0,9)
QuickSort(0,2) QuickSort(3,9)
q = 2
QS(1,2) QS(0,0)
QS(9,9) QS(3,8)
q = 0
q = 8
QS(6,8) QS(3,5)
q = 5
QS(+,5) QS(3,3)
q = 3
QS(7,8) QS(6,6)
q = 6
QS(5,5) QS(+,+)
q = +
QS(8,8) QS(7,7)
q = 7
QS(2,2) QS(1,1)
q = 1
12
23
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
1|sss1rl k1z|)s|s
J||a a|asams||aa j|val a|ama|| setara raaaam,
lera|slr|aas| setara aa|Iarm
8est case raaa|ag t|me: 0(a |eg
2
a|
- Paaa sel|aj jemaa||aa re|ars|I, jas|s| e|emea j|val se|a|a jers|s
a| leaa|, array a|jeta| meajaa| aaa aa|aa yaa sama, e|emea
e|emea yaa |ea|| |et|| aaa yaa |ea|| aesar aar| j|val
24
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
1|sss1rl k1z|)s|s
werst case: 0(k
2
|
Paaa sel|aj jemaa||aa re|ars|I, j|val se|a|a
meraja|aa e|emea leraesar (alaa ler|et||l, array
a|jeta| meajaa| sala aa|aa yaa semaa e|emeaaya
|ea|| |et|| aar| j|val, j|val, aaa seaaa| aa|aa |a|
array yaa emjly
13
25
A|gor|lra dar 3lru|lur 0ala kr1z |zr|Iz
I1mmzr) 1| I1rl|1 k|1r|l|ms
|aj|ate, raaaam|tea
Iaslesl (aaa Iar |are |ajalsl
O(n log n)
expected
a|t|sarl
seaeal|a| aala attess
Iasl (aaa Iar |ae |ajalsl
O(n log n) meresarl
O(n
2
)
O(n
2
)
T|me
|aserl|aasarl
se|etl|aasarl
A|ar|l|m Nales
|aj|ate
s|aw (aaa Iar sma|| |ajalsl
|aj|ate
s|aw (aaa Iar sma|| |ajalsl

Вам также может понравиться