Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehBocah Chiie Telah diubah "9 tahun yang lalu
1
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT
2
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. ilmu komputerilmu komputer 2
3
Prinsip utama yang diimplementasikan pada algoritma merge-sort seringkali disebut sebagai pecah-belah dan taklukkan (bahasa Inggris: divide and conquer). Cara kerja algoritma merge sort adalah membagi larik data yang diberikan menjadi dua bagian yang lebih kecil. Kedua larik yang baru tersebut kemudian akan diurutkan secara terpisah. Setelah kedua buah list tersusun, maka akan dibentuk larik baru sebagai hasil penggabungan dari dua buah larik sebelumnya. bahasa Inggrislarikbahasa Inggrislarik 3
4
4 VISUALISASI MERGE SORT
5
5 procedure MergeSort(input/output A : TabelInt, input i, j : integer) { Mengurutkan tabel A[i..j] dengan algoritma Merge Sort Masukan: Tabel A dengan n elemen Keluaran: Tabel A yang terurut }Deklarasi: k : integer Algoritma: if i 1) k ← (i+j) div 2 k ← (i+j) div 2 MergeSort(A, i, k) MergeSort(A, i, k) MergeSort(A, k+1, j) MergeSort(A, k+1, j) Merge(A, i, k, j) Merge(A, i, k, j)endif ALGORITMA MERGE SORT
6
6 procedure Merge(input/outputA : TabelInt, input kiri,tengah,kanan : integer) { Menggabung tabel A[kiri..tengah] dan tabel A[tengah+1..kanan] menjadi tabel A[kiri..kanan] yang terurut menaik. Masukan: A[kiri..tengah] dan tabel A[tengah+1..kanan] yang sudah terurut menaik. Keluaran: A[kiri..kanan] yang terurut menaik. } Deklarasi B : TabelInt i, kidal1, kidal2 : integer Algoritma: kidal1 ← kiri { A[kiri.. tengah] } kidal2 ← tengah + 1 { A[tengah+1.. kanan] } i ← kiri while (kidal1 ≤ tengah) and (kidal2 ≤ kanan) do if A kidal1 < A kidal2 then B i ← A kidal1 kidal1 ← kidal1 + 1 else B i ← A kidal2 kidal2 ← kidal2 + 1 endif i ← i + 1 endwhile { kidal1 > tengah or kidal2 > kanan }
7
7 { salin sisa A bagian kiri ke B, jika ada } while (kidal1 ≤ tengah) do B i ← A kidal1 kidal1 ← kidal1 + 1 i ← i + 1 endwhile { kidal1 > tengah } { salin sisa A bagian kanan ke B, jika ada } while (kidal2 ≤ kanan) do B i ← A kidal2 kidal2 ← kidal2 + 1 i ← i + 1 endwhile { kidal2 > kanan } { salin kembali elemen-elemen tabel B ke A } for i ← kiri to kanan do A i ← B i endfor { diperoleh tabel A yang terurut membesar }
8
8 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 2 k=1
9
9 2 1196414 217614 217 2 merge B COPY 217
10
10 2171196414 217614 217 217 merge 217 B COPY
11
11 2171196414 217614 217 2 merge 217 B COPY
12
12 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 614 6 k=1
13
13 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 614 6 MERGE B
14
14 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 614 66 B COPY
15
15 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 1466 B COPY
16
16 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217 k=(i+j) div 2 k=(1+4) div 2 = 2 146 66 B COPY
17
17 2 1196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217146 MERGE B
18
18 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217146 MERGE 2 B
19
19 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217146 MERGE 26 B
20
20 2171196414 217614 k=(i+j) div 2 k=(1+7) div 2 = 4 217146 MERGE 261714 B COPY
21
21 2171196414 261714 k=(i+j) div 2 k=(1+7) div 2 = 4 217146 MERGE 261714 B COPY
22
22 2171196414 261714 k=(i+j) div 2 k=(1+7) div 2 = 4 1194 94 k=(i+j) div 2 k=(1+3) div 2 = 2 49 k=1
23
23 2171196414 261714 k=(i+j) div 2 k=(1+7) div 2 = 4 1194 94 k=(i+j) div 2 k=(1+3) div 2 = 2 49 MERGE B 49 COPY
24
24 2171196414 261714 k=(i+j) div 2 k=(1+7) div 2 = 4 1194 94 k=(i+j) div 2 k=(1+3) div 2 = 2 11 MERGE B 4
25
25 2171196414 261714 k=(i+j) div 2 k=(1+7) div 2 = 4 1194 94 49 B COPY
26
26 2171196414 2617141194 MERGE B 2
27
27 2171196414 2617141194 B 24
28
28 2171196414 2617141194 B 246
29
29 2171196414 2617141194 B 2469
30
30 2171196414 2617141194 B 246911
31
31 2171196414 2617141194 COPY 1714 B 246911
32
32 2617141194 COPY 1714 B 246911 1714246911
33
33 1714246911 JADI SETELAH DIURUTKAN HASILNYA ADALAH
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.