08 - Strategi Pengurutan (Merge Sort)
08 - Strategi Pengurutan (Merge Sort)
Merge Sort
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
3
Macam-macam Sorting
Buble Sort
Selection Sort
Insertion Sort
Shell Sort
Merge Sort
Quick Sort
4
MERGE SORT
Merge sort merupakan algoritma pengurutan dalam ilmu
komputer yang dirancang untuk memenuhi kebutuhan
pengurutan atas suatu rangkaian data yang tidak
memungkinkan untuk ditampung dalam memori komputer
karena jumlahnya yang terlalu besar.
Algoritma ini ditemukan oleh John von Neumann pada
tahun 1945.
5
Konsep Algoritma Merge Sort
6
Penjelasan:
Contoh penerapan atas sebuah larik/array dengan data yang akan diurutkan
{6,3,5,1,8,2,4,7} ditunjukkan pada gambar 1. Pertama kali larik tersebut dibagi menjadi dua
bagian, {6,3,5,1} dan {8,2,4,7}. Larik {6,3,5,1} dibagi menjadi dua bagian yaitu, {6,3} dan
{5,1}. Larik {6,3} dibagi menjadi dua bagian yaitu, {6} dan {3}. Selanjutnya karena {6} dan {3}
sudah tidak bisa dibagi lagi maka di merge dan diurutkan menjadi {3,6}. Larik {5,1} dibagi
menjadi dua bagian yaitu, {5} dan {1}. Selanjutnya {5} dan {1} dilakukan merge dan
diurutkan menjadi {1,5}. Larik {3,6} dan {1,5} dimerge dan diurutkan menjadi {1,3,5,6}.
Larik {8,2,4,7} dibagi menjadi dua bagian yaitu, {8,2} dan {4,7}. Larik {8,2} dibagi menjadi
dua bagian yaitu, {8} dan {2}. Selanjutnya {8} dan {2} di merge dan diurutkan menjadi {2,8}.
Larik {4,7} dibagi menjadi dua bagian yaitu, {4} dan {7}. Selanjutnya {4} dan {7} dilakukan
merge dan diurutkan menjadi {4,7}. Larik {2,8} dan {4,7} dimerge dan diurutkan menjadi
{2,4,7,8}. Larik {1,3,5,6} dan larik {2,4,7,8} dimerge dan diurutkan menjadi {1,2,3,4,5,6,7,8}.
7
Langkah / Ilustrasi:
Data sumber yang akan diurutkan adalah sebagai berikut:
Bagaimana selanjutnya?
8
Langkah pertama kita bagi menjadi 3 bagian
susunan elemen data yaitu 4 dengan 7, 1
dengan 2 dan 9 dengan 5.
9
Kemudian kita bandingan elemen pertama
yaitu 4 dan 7. karena 4 sudah lebih kecil dari 7
maka posisi tetap.
10
Kemudian bandingkan elemen data ke 2 yaitu
angka 1 dan 2. karena angka 1 lebih kecil dari
2 maka posisi tetap.
11
Kemudian bandingkan elemen data ke 3 yaitu
angka 9 dan 5. karena angka 5 lebih kecil dari
9 maka posisi 9 ditukar dengan angka 5.
12
Langkah selanjutnya adalah kita bandingkan
angka pertama pada elemen pertama dengan
elemen 2 dan elemen 3 pertama kita
bandingkan angka 4 dengan element 2 yaitu 1.
13
Cek angka 4 dan 1. lebh besar mana angka 4
dibandingkan dengan angka 1. karena angka 1
lebih kecil dari angka 4 maka angka 1 akan
menempati posisi baru di elemen pertama.
14
kemudian bandingkan angka 4 dengan 2. cek
lebih kecil mana antara angka 4 dan 2?
15
kemudian bandingkan angka 4 dengan elemen
ke 3 yaitu 5
16
lanjut ke urutan angka ke 2 pada elemen
pertama yaitu angka 7. bandingkan angka 7
dan 5. lebih kecil mana antara angka 7 dan 5
17
lanjut ... bandingkan angka 7 dengan angka 9.
lebih kecil mana antara angka 7 dan 9?
19
Implementasi dalam Java
Latihan 41 : Merge sort secara ascending dengan data int
20
Output:
21
Kompleksitas Merge Sort
22
TUGAS INDIVIDU
23
Thanks!
24