Pertemuan 21 Merge Sort

14
1 Pertemuan 21 Merge Sort Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun : 2005 Versi : 5

description

Pertemuan 21 Merge Sort. Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5. Learning Outcomes. Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat Menjelaskan kembali algoritma merge sort. Outline Materi. Algoritma Merge Sort - PowerPoint PPT Presentation

Transcript of Pertemuan 21 Merge Sort

Page 1: Pertemuan 21 Merge Sort

1

Pertemuan 21

Merge Sort

Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming

Tahun : 2005

Versi : 5

Page 2: Pertemuan 21 Merge Sort

2

Learning Outcomes

Pada akhir pertemuan ini, diharapkan:

Mahasiswa dapat Menjelaskan kembali algoritma merge sort

Page 3: Pertemuan 21 Merge Sort

3

Outline Materi

• Algoritma Merge Sort

• Penerapan Merge Sort

Page 4: Pertemuan 21 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

Page 5: Pertemuan 21 Merge Sort

5

Sorting

Teknik pengurutan sederhana:

Bubble sort

Selection sort

Insertion sort

Teknik pengurutan lanjut:

Quick sort

Merge sort

Page 6: Pertemuan 21 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

Page 7: Pertemuan 21 Merge Sort

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

Page 8: Pertemuan 21 Merge Sort

8

Merge sort (Putaran 2)

Gabung Gabung

5212 40 69 18 922 51 14 38

4012 52 69 9 2218 51 14 38

Page 9: Pertemuan 21 Merge Sort

9

Merge sort (Putaran 3)

Gabung

14 384012 52 69 9 2218 51

14 38129 18 22 40 5251 69

Page 10: Pertemuan 21 Merge Sort

10

Merge sort (Putaran 4)

Gabung

14 38

52 69129 14 18 22 4038 51

129 18 22 40 5251 69

Page 11: Pertemuan 21 Merge Sort

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

Page 12: Pertemuan 21 Merge Sort

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

Page 13: Pertemuan 21 Merge Sort

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

Page 14: Pertemuan 21 Merge Sort

14

Penutup

• Untuk dapat Menjelaskan kembali algoritma merge sort, mahasiswa membahas tugas pertemuan 21 no 1, 2, dan 3.

(diskusikan dalam kelompok)