Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming

Presentasi serupa


Presentasi berjudul: "Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming"— Transcript presentasi:

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)


Download ppt "Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming"

Presentasi serupa


Iklan oleh Google