06 Merge - Quick Sort
3 sks By. Sri Rezeki Candra Nursari
Materi Materi Pengantar Struktur Data Abstract Data Type (ADT) Rekursif : Fibonacci Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick) Struktur Data Linier (Linked List, Stack, Queu) Struktur Data Hirarki (Tree, Graph, Hash Tables)
M erge Sort
M et ode ini sering digunakan pada
pengurut an berkas. M ula-mula diberikan
dua kumpulan dat a yang sudah dalam keadaan t erurut . Kedua kumpulan dat a t ersebut harus dijadikan sat u t abel sehingga dalam keadaan t erurut(M etode Penggabungan) M erge Sort
- Penggabungan ini digunakan pada pengurut an berkas
- Syarat nya ada dua kumpulan dat a yang sudah dalam keadaan urut
- Kedua kumpulan dat a t ersebut harus dijadikan sat u t abel sehingga dalam keadaan urut
T1 2, 19, 26, 44, 65
- M isalnya :
M erge Sort (M etode Penggabungan)
- M isalnya : T1 65, 44, 26, 19, 2
T2 22, 12, 5, 3
(M etode Penggabungan) M erge Sort
- Proses pengurut an dengan met ode penggabungan :
1. M ula-mula diambil dat a pert ama dari T1, 2, dan dat a pert ama dari T2, yait u 3
2. Dat a ini dibandingkan, kemudian yang lebih kecil dilet akkan sebagai dat a pert ama hasil hasil pengurut an, misalnya T3
3. Jadi T3 akan memiliki sat u dat a, yait u 2
4. Dat a yang lebih besar, yait u 3, kemudian dibandingkan
dengan dat a kedua dari T1, yait u 195. Karena lebih kecil, maka 3 dilet akkan sebagai dat a kedua dari
M erge Sort
- Algorit manya sebagai berikut :
1. i
1 2. j
1
3. J3
1
4. Kerjakan baris 5 s.d. 7 sampai (i > J1) at au (j > J2)
5. J3 J3 +1
6. Jika (T1[j] <T2[j]) maka T3[J3] T1[i], i i+1
7. Jika (T1[j] >=T2[j]) maka T3[J3] T2[j], j j+1
8. Jika (i > J) maka kerjakan baris 9, jika t idak dikerjakan baris 15 9. i j
10. Selama (i <= J2) kerjakan baris 11 s.d. 13
11. J3 J3 + 1
12. T3[J3] T2[i] 13. i i + 1
14. Selesai 15. j i
Pengurutan M erge Sort
D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 1 T1
2 1 9 2 6 4 4 6 5
T2
3 5 1 2 2 2
T3
T1
1 9 2 6 4 4 6 5
T2
3 5 1 2 2 2
Pengurutan M erge Sort
D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 3 T1
1 9 2 6 4 4 6 5
T2
5 1 2 2 2
T3
2
3
T1
1 9 2 6 4 4 6 5
T2
1 2 2 2
Pengurutan M erge Sort
D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 5 T1
1 9 2 6 4 4 6 5
T2
2 2
T3
2
3 5 1 2 1 9
Ta h a p : 6 T1
2 6 4 4 6 5
T2
Pengurutan M erge Sort
D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] Ta h a p : 7 T1
4 4 6 5
T2 T3
2
3 5 1 2 1 9 2 2 2 6 4 4
Ak h ir T3
2
3 5 1 2 1 9 2 2 2 6 4 4 6 5
Quick Sort
M embandingkan suat u elemen (disebut pivot ) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil daripada pivot t ersebut t erlet ak di sebelah kirinya dan elemen- elemen lain yang lebih besar daripada pivot t ersebut
t erlet ak di sebelah kanannya. Sehingga dengan demikian
t elah t erbent uk dua sublist , yang t erlet ak di sebelah kiri dan kanan dari pivot . Lalu pada sublist kiri dan sublist kanan kit a anggap sebuah list baru dan kit a lakukan proses yang sama sepert i sebelumnya. Demikianset erusnya sampai t idak t erdapat sublist lagi. Sehingga di
(M etode Pengurutan Cepat) Quick Sort
Suat u met ode pengurut an yang membandingkan
suat u elemen (pivot ) dengan elemen yang lain danmenyusunnya sedemikian rupa sehingga elemen
yang lain yang lebih kecil daripada pivot t erlet ak
disebelah kiri pivot sedangkan elemen yang lebih
besar dari pivot dilet akkan disebelah kanan pivot
Sehingga dengan demikian t erbent uk dua sub list
yait u yang t erlet ak disebelah kiri pivot dan sebelah kanan pivot
(M etode Pengurutan Cepat) Quick Sort
List yang sebelah kiri pivot juga dit erapkan at uran
sepert i pivot , yait u membandingkan elemen yang
lainnya lagi, kalau lebih kecil dilet akkan sebelah kiri, kalau lebih besar dilet akkan disebelah kanan. Hal ini juga berlaku unt uk list yang let aknya disebelah kanan- Disebut juga dengan met ode part isi
- Pada met ode quick jarak dari kedua elemen yang dit ukarkan dibuat cukup besar dengan t ujuan unt uk
(M etode Pengurutan Cepat) Quick Sort
- Proses pengurut an dengan met ode pengurut an cepat :
2. Pivot ini harus dilet akkan pada posisi ke-j sedemikian hingga dat a ant ara 1 s.d. (j-1) lebih kecil daripada x, sedangkan dat a pada posisi ke (j+1) s.d. N lebeih besar dari pada x
3. Cara pengat urannya adalah menukarkan dat a
diant ara posisi 1 s.d. (j-1) yang lebih besar daripadaQuick Sort
- Algorit manya sebagai berikut :
1. x Dat a[(L+R)/ 2)] 2. i L 3. j R
4. Selama (i <= j) kerjakan baris 5 s.d. 12
5. Selama (Dat a[i] < x) kerjakan i i+1
6. Selama (Dat a[i] > x) kerjakan j j-1
7. Jika (I <= j) maka kerjakan baris 8 s.d. 10; jika t idak dikerjakan baris 11
8. Tukar Dat a [i] dengan Dat a [j] 9. i i + 1
Quick Sort
- At au algorit manya yang lain mengat akan :
1. Tent ukan data-data yang akan diurut kan dan disimpan dalam array
2. Lakukan pengulangan dari data-data tersebut
3. Data-data yang ada dibagi menjadi 2 bagian dimana bagian yang sat u dengan yang lain dilakukan proses pengecekan
4. Pada bagian yang pertama, lakukan pembandingan antara data yang sat u dengan data yang lain, dimana kalau data yang sat u lebih kecil dari data yang lain, maka posisinya dit ukar. Kalau datanya lebih kecil diletakkan disebelah kiri, kalai datanya lebih besar diletakkan disebelah kanan. Hal ini berlaku pada bagian yang kedua
5. Tampilkan data hasil pembandingan
6. Ulangi langkah 4, sampai semua data dibandingkan
Pengurutan Quick Sort
3
65 L= 1 , R= 3
1 2
2 4 4
26
19
22
5
65 L= 1 , R= 2
5
1 2
2
44
26
19
22
5
3
3
22
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
5 3 1 2
Aw a l 6 5 2 4 4 2 6 1 9 2 2
5 3 1 2 L= 1 , R= 9 6 5
2
44
26
19
22
L= 1 , R= 5 1 2
19
2
44 26 1 9
22
5
3
65 L= 1 , R= 4
1 2
2 44 2 6
65
Pengurutan Quick Sort
5
12
65 L= 2 , R= 4
2
3
44 2 6
19
22
12
22
65 L= 2 , R= 3
2
3 4 4
26
19
22
5
12
5
44 26 1 9
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
L= 2 , R= 8
Aw a l 2 1 2 4 4 2 6 1 9 2 2
5 3 6 5 L= 2 , R= 9
2 1 2
44
26
19
22
5 3 6 5
2 1 2
3
44
26
19
22
5
3
65 L= 2 , R= 5
2
65
Pengurutan Quick Sort
22
26 19 2 2
12
44
65 L= 3 , R= 5
2
3
5
26 1 9
12
3
44
65 L= 3 , R= 4
2
3
5 2 6
19
22
12
44
5
2
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
2 3 4 4
Aw a l 2 1 2 4 4 2 6 1 9 2 2
5 3 6 5 L= 3 , R= 9
2 3 4 4
26
19
22
5 12 6 5
L= 3 , R= 8
26
65 L= 3 , R= 6
19
22 5 1 2
65 L= 3 , R= 7
2 3 1 2
26
19
22
5
44
65
Pengurutan Quick Sort
3 5 2 6
44
26
22
3 5 1 2 1 9
2
65 L= 4 , R= 5
44
26
3 5 1 2 19 2 2
2
65 L= 4 , R= 6
44
19 22 1 2
2
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
65 L= 4 , R= 7
22 12 4 4
19
3 5 2 6
2
L= 4 , R= 8
12 44 6 5
22
19
3 5 2 6
2
5 3 6 5 L= 4 , R= 9
Aw a l 2 1 2 4 4 2 6 1 9 2 2
65
Pengurutan Quick Sort
65 L= 5 , R= 7
44
26
3 5 1 2 1 9 2 2
2
65 L= 5 , R= 6
44
3 5 1 2 1 9 22 2 6
2
22 26 4 4
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
3 5 1 2 1 9
2
L= 5 , R= 8
26 44 6 5
22
3 5 1 2 1 9
2
5 3 6 5 L= 5 , R= 9
Aw a l 2 1 2 4 4 2 6 1 9 2 2
65
Pengurutan Quick Sort
3 5 1 2 1 9 2 2 26 4 4
Aw a l 2 1 2 4 4 2 6 1 9 2 2
65 I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
44
3 5 1 2 1 9 2 2 2 6
2
65 L= 6 , R= 7
2
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
L= 6 , R= 8
26 44 6 5
3 5 1 2 1 9 2 2
2
5 3 6 5 L= 6 , R= 9
Aw a l 2 1 2 4 4 2 6 1 9 2 2
5 3 6 5
Pengurutan Quick Sort
I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
Aw a l 2 1 2 4 4 2 6 1 9 2 2
5 3 6 5 L= 8 , R= 9
2
3 5 1 2 1 9 2 2 2 6 4 4 6 5 I t e r a si D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a D a t a [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
Ak h ir
2
3 5 1 2 1 9 2 2 2 6 4 4 6 5