Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehAnca Riyan Telah diubah "9 tahun yang lalu
1
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Tahun : 2005 Versi : 5 Pertemuan 21 Merge Sort
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 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] [5] [6] [7] [8] [9] 52 12
69 40 18 22 51 9 14 38 52 12 69 40 18 22 51 9 14 38 Gabung Gabung Gabung Gabung Gabung 12 52 40 69 18 22 9 51 14 38
8
Merge sort (Putaran 2) 12 52 40 69 18 22 9 51 14 38 Gabung Gabung 12 40 52 69 9 18 22 51 14 38
9
Merge sort (Putaran 3) 12 40 52 69 9 18 22 51 14 38 Gabung 9 12 18 22 40 51 52 69 14 38
10
Merge sort (Putaran 4) 9 12 18 22 40 51 52 69 14 38 Gabung 9 12 14 18 22 38 40 51 52 69
11
Merge sort 1 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]; }
12
Merge sort 2 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); }
13
Merge sort 3 Void mergeSort (int *Dt, int n){ int *temp;
temp = (int *) malloc ((n+1)*sizeof(int)); m_sort(Dt, temp, 0, n-1); free(temp); }
14
(diskusikan dalam kelompok)
Penutup Untuk dapat Menjelaskan kembali algoritma merge sort, mahasiswa membahas tugas pertemuan 21 no 1, 2, dan 3. (diskusikan dalam kelompok)
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.