Pertemuan 21 Merge Sort
description
Transcript of Pertemuan 21 Merge Sort
1
Pertemuan 21
Merge Sort
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Tahun : 2005
Versi : 5
2
Learning Outcomes
Pada akhir pertemuan ini, diharapkan:
Mahasiswa dapat Menjelaskan kembali algoritma merge sort
3
Outline Materi
• Algoritma Merge Sort
• Penerapan Merge Sort
4
Sorting
Sorting merupakan proses mengurutkan data sesuai aturan tertentu:
Ascending: dari terkecil sampai terbesar
Descending: dari terbesar sampai terkecil
Tujuan sorting adalah untuk mempercepat proses pencarian (searching) data
5
Sorting
Teknik pengurutan sederhana:
Bubble sort
Selection sort
Insertion sort
Teknik pengurutan lanjut:
Quick sort
Merge sort
6
Merge sort
Pada tahap awal, semua data dibagi menjadi bagian/kelompok data terkecil.
Kemudian tiap dua data digabungkan menjadi 1 kelompok data gabungan.
Penggabungan data diteruskan sampai semua data terintegrasi menjadi satu
7
Merge sort (Putaran 1)
[0] [1] [2] [3] [4]
1252 69 40 18
[5] [6] [7] [8] [9]
5122 9 14 38
1252 69 40 18 5122 9 14 38
Gabung Gabung Gabung Gabung Gabung
5212 40 69 18 922 51 14 38
8
Merge sort (Putaran 2)
Gabung Gabung
5212 40 69 18 922 51 14 38
4012 52 69 9 2218 51 14 38
9
Merge sort (Putaran 3)
Gabung
14 384012 52 69 9 2218 51
14 38129 18 22 40 5251 69
10
Merge sort (Putaran 4)
Gabung
14 38
52 69129 14 18 22 4038 51
129 18 22 40 5251 69
11
Void merge (int *a, int *t, int PKr, int PMid, int PKn){
int i, l1, u1, l2, u2, k;
l1 = PKr; u1 = PMid-1;
l2 = PMid; U2 = PKn;
k = PKr;
while ((l1 <= u1) && (l2 <=u2))
t[k++] = (a[l1]<a[l2])?a[l1++:a[l2++];
while (l1<=u1) t[k++] = a[l1++];
while (l2<=u2) t[k++] = a[l2++];
for (i=Pkr; i<=PKn; i++) a[i]=t[i];
}
Merge sort 1
12
Void m_sort (int *a, int *t, int Kr, int Kn){
int mid;
if (Kr < Kn) {
mid = (Kr+Kn)/2;
m_sort(a, t, Kr, mid);
m_sort(a, t, mid+1, Kn);
merge(a, t, Kr, mid+1, kn);
}
}
Merge sort 2
13
Void mergeSort (int *Dt, int n){
int *temp;
temp = (int *) malloc ((n+1)*sizeof(int));
m_sort(Dt, temp, 0, n-1);
free(temp);
}
Merge sort 3
14
Penutup
• Untuk dapat Menjelaskan kembali algoritma merge sort, mahasiswa membahas tugas pertemuan 21 no 1, 2, dan 3.
(diskusikan dalam kelompok)