Algoritma Struktur Data
3 sks
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
M erge Sort
(M etode Penggabungan)
•
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
M erge Sort
(M etode Penggabungan)
M erge Sort
(M etode Penggabungan)
•
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 19
M erge Sort
•
Algorit manya sebagai berikut :
1. i 1
8. Jika (i > J) maka kerjakan baris 9, jika t idak dikerjakan baris 15 9. i j
16. Selama (j <= J1) kerjakan baris 17 s.d. 19 17. J3 J3 + 1
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
2
Ta h a p : 2
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
5
Ta h a p : 4
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
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. Demikian
Quick Sort
(M etode Pengurutan Cepat)
•
Suat u met ode pengurut an yang membandingkan
suat u elemen (pivot ) dengan elemen yang lain dan
menyusunnya 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
Quick Sort
(M etode Pengurutan Cepat)
•
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
Quick Sort
(M etode Pengurutan Cepat)
•
Proses pengurut an dengan met ode pengurut an
cepat :
1. Pilih dat a t ert ent u yang dinamakan pivot , misalnya
x.
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
Quick Sort
•
Algorit manya sebagai berikut :
1. x
Dat a[(L+R)/ 2)]
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
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 6 5 2 4 4 2 6 1 9 2 2 5 3 1 2
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
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
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
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
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 ]