SlideShare a Scribd company logo
1 of 18
Download to read offline
Pengurutan 
Merge 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Merge sort adalah metode pengurutan yang dilakukan 
dengan memecah penampung elemen tepat menjadi 2 
sampai tersisa hanya menjadi 1 partisi, kemudian 
mengiterasi dengan membandingkan dan 
menggabungkan secara berulang.
Proses - Memecah 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4 
6 5 3 1 8 7 2 4
Proses - Membandingkan 
Bandingkan satu per satu elemen yang sudah dipecah 
6 5 3 1 8 7 2 4
Proses - Tukar 
Tukar posisi elemen jika posisi tidak benar. 
Jika posisi sudah benar, maka lewati dan lanjut ke elemen 
berikutnya 
5 6 3 1 8 7 2 4
Proses - Bandingkan Lagi 
Lanjutkan ke dua elemen berikutnya untuk dibandingkan 
5 6 3 1 8 7 2 4
Proses - Tukar Lagi 
Tukar kembali 
5 6 1 3 8 7 2 4
Proses - Iterasi Selesai 
Setelah selesai, gabungkan elemen-elemen yang telah 
terurut tadi sehingga membentuk tabel-tabel baru seperti 
di gambar berikut 
5 6 1 3 7 8 2 4 
5 6 1 3 7 8 2 4
Proses - Perbandingan Kembali 
Bandingkan: 
● elemen pertama pada tabel pertama dengan elemen pertama pada tabel kedua dan 
sebaliknya secara bergantian 
● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan 
elemen lainya 
5 6 1 3 7 8 2 4 
1 3
Proses - Perbandingan Kembali 
Bandingkan: 
● Pada tabel kedua sudah habis 
● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan 
elemen lainya (6) yang tersisa 
5 6 1 3 7 8 2 4 
1 3 5 6
Hasil Iterasi 
Tabel yang baru yang siap dibandingkan dengan proses 
yang sama 
5 6 1 3 7 8 2 4 
1 3 5 6 2 4 7 8
Perbandingan Tabel Baru 
Lakukan perbandingan seperti sebelumnya 
1 3 5 6 2 4 7 8 
1 2 3 4 5 6 7 8
Pseudocode dengan List 
function mergeSort(Input m: list) → list 
if length(m) ≤ 1 
→ m 
var list left, right, result 
var integer middle = length(m) / 2 
for each x in m up to middle 
begin 
add x to left 
end 
for each x in m after middle 
begin 
add x to right 
end 
left = mergeSort(left) 
right = mergeSort(right) 
result = merge(left, right) 
→ result 
function merge(Input: left list,Input right: list) → list 
list result 
while (length(left) > 0 or length(right) > 0) do 
begin 
if (length(left) > 0 and length(right) > 0) 
if first(left) ≤ first(right) 
append first(left) to result 
left = rest(left) 
else 
append first(right) to result 
right = rest(right) 
else if length(left) > 0 
append first(left) to result 
left = rest(left) 
else if length(right) > 0 
append first(right) to result 
right = rest(right) 
end 
→ result
Kode C++ 
template <class M> 
void myMerge( M arr[], int lb, int mid, int ub ) { 
int i, j; 
int size1 = mid - lb + 1; 
int size2 = ub - mid; 
M* tmpArray1 = new M[size1]; 
M* tmpArray2 = new M[size2]; 
for( i=0; i<size1; i++ ) { 
tmpArray1[i] = arr[lb + i]; 
} 
for( j=0; j<size2; j++ ) { 
tmpArray2[j] = arr[mid + 1 + j]; 
} 
i = 0; j = i; 
… // lanjut ke slide berikutnya
Kode C++ - lanjutan 
for( int k=lb; k<=ub; k++ ) { 
if (i == size1) { // Kalau range array pertama lebih kecil 
arr[k] = tmpArray2[j]; 
j++; 
} else if (j == size2) { // Kalau range array kedua lebih kecil 
arr[k] = tmpArray1[i]; 
i++; 
} else if ( tmpArray1[i] < tmpArray2[j] ) { 
arr[k] = tmpArray1[i]; 
i++; 
} else { 
arr[k] = tmpArray2[j]; 
j++; 
} 
} 
delete[] tmpArray1; // 
delete[] tmpArray2; // Bersihkan alokasi arraynya 
}
Kode C++ - lanjutan 2 
void mergeSort( int arr[], int lb, int ub ) { 
if (ub - lb > 1) { 
int mid = (lb + ub) / 2; 
mergeSort(arr, lb, mid); 
mergeSort(arr, mid + 1, ub); 
myMerge(arr, lb, mid, ub); 
} else { 
if (arr[ub] < arr[lb]) { 
int tmp = arr[ub]; 
arr[ub] = arr[lb]; 
arr[lb] = tmp; 
} 
} 
} 
// ==================== akhir dari prosedur ====================
Kode C++ - lanjutan 3 (main) 
#include <iostream> 
using namespace std; 
int main() { 
int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; 
mergeSort(numbers, 0, 10); 
for (int i=0; i<10; i++) { 
cout << numbers[i]; 
cout << “ | “; 
} 
}
Kompleksitas 
Worst Case O(n log n) 
Best Case O(n) 
Average Case O(n log n)

More Related Content

What's hot

What's hot (20)

Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 
Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04
 
Bab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasiBab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasi
 
Integral Lipat Tiga
Integral Lipat TigaIntegral Lipat Tiga
Integral Lipat Tiga
 
Konsep Bilangan Bulat
Konsep Bilangan BulatKonsep Bilangan Bulat
Konsep Bilangan Bulat
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
deret kuasa
deret kuasaderet kuasa
deret kuasa
 
Determinan Matriks ( Aljabar Linear Elementer )
Determinan Matriks ( Aljabar Linear Elementer )Determinan Matriks ( Aljabar Linear Elementer )
Determinan Matriks ( Aljabar Linear Elementer )
 
Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05Matematika Diskrit - 09 graf - 05
Matematika Diskrit - 09 graf - 05
 
Matematika Diskrit matriks relasi-dan_fungsi
Matematika Diskrit  matriks relasi-dan_fungsiMatematika Diskrit  matriks relasi-dan_fungsi
Matematika Diskrit matriks relasi-dan_fungsi
 
Bab 6 relasi
Bab 6 relasiBab 6 relasi
Bab 6 relasi
 
Program penjumlahan dan pengurangan matriks
Program penjumlahan dan pengurangan matriksProgram penjumlahan dan pengurangan matriks
Program penjumlahan dan pengurangan matriks
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Bab 9 graf
Bab 9 grafBab 9 graf
Bab 9 graf
 
Matematika Diskrit graf
Matematika Diskrit grafMatematika Diskrit graf
Matematika Diskrit graf
 
70 soal dan pembahasan persamaan dan pertidaksamaan nilai mutlak
70 soal dan pembahasan persamaan dan pertidaksamaan nilai mutlak70 soal dan pembahasan persamaan dan pertidaksamaan nilai mutlak
70 soal dan pembahasan persamaan dan pertidaksamaan nilai mutlak
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
 
Modul 2 pd linier orde n
Modul 2 pd linier orde nModul 2 pd linier orde n
Modul 2 pd linier orde n
 
Normalisasi data
Normalisasi dataNormalisasi data
Normalisasi data
 
Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )Ruang Vektor ( Aljabar Linear Elementer )
Ruang Vektor ( Aljabar Linear Elementer )
 

Similar to Algoritma dan Struktur Data - Merge Sort

Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
Nila Aulia
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
Dea Rokhmatun Iradewa
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
Fahuda E
 

Similar to Algoritma dan Struktur Data - Merge Sort (20)

Algoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan MergeAlgoritma dna Struktur Data - Pengurutan Merge
Algoritma dna Struktur Data - Pengurutan Merge
 
Tugas selamat riady algoritma
Tugas selamat riady algoritmaTugas selamat riady algoritma
Tugas selamat riady algoritma
 
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementerMenyelesaikan sistem persamaan linear dengan operasi baris elementer
Menyelesaikan sistem persamaan linear dengan operasi baris elementer
 
Algoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion SortAlgoritma dan Struktur Data - Insertion Sort
Algoritma dan Struktur Data - Insertion Sort
 
Algoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertionAlgoritma dan Struktur Data - pengurutan insertion
Algoritma dan Struktur Data - pengurutan insertion
 
kiki andriani , 5 metode sorting
kiki andriani , 5 metode sortingkiki andriani , 5 metode sorting
kiki andriani , 5 metode sorting
 
Calculus 2 pertemuan 4
Calculus 2 pertemuan 4Calculus 2 pertemuan 4
Calculus 2 pertemuan 4
 
Pengurutan (Sorting)
Pengurutan (Sorting)Pengurutan (Sorting)
Pengurutan (Sorting)
 
Makalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleksMakalah kelompok 4 metode simpleks
Makalah kelompok 4 metode simpleks
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
207 p10
207 p10207 p10
207 p10
 
Jeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma SortingJeni Intro2 Bab06 Algoritma Sorting
Jeni Intro2 Bab06 Algoritma Sorting
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
ratna mustika sari
ratna mustika sariratna mustika sari
ratna mustika sari
 
Pengurutan (sorting )
Pengurutan (sorting )Pengurutan (sorting )
Pengurutan (sorting )
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Algoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selectionAlgoritma dan Struktur Data - pengurutan selection
Algoritma dan Struktur Data - pengurutan selection
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 

More from KuliahKita

More from KuliahKita (20)

CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup MenuCSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-2 Popup Menu
 
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup KonfirmasiCSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 05-1 Popup Konfirmasi
 
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding DoorCSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-4 Elemen Sliding Door
 
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card FlipCSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-3 Elemen Card Flip
 
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordionCSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-2 accordion
 
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tabCSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 04-1 informasi tab
 
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side MenuCSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-3 Slide Side Menu
 
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 BreadcrumbCSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-2 Breadcrumb
 
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasarCSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 03-1 navigasi dasar
 
CSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox GridCSS Eksperimen - 02-2 Flexbox Grid
CSS Eksperimen - 02-2 Flexbox Grid
 
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layoutEksperimen CSS - 02-1 grid layout
Eksperimen CSS - 02-1 grid layout
 
Eksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 PendahuluanEksperimen CSS - 01 Pendahuluan
Eksperimen CSS - 01 Pendahuluan
 
07 equity research (bagian 2)
07 equity research (bagian 2)07 equity research (bagian 2)
07 equity research (bagian 2)
 
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - 32 Discounted Cash Flow (DCF)
 
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)Pasar Saham - Equity Research (bagian 1)
Pasar Saham - Equity Research (bagian 1)
 
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due DilligencePasar Saham - 30 Investment Due Dilligence
Pasar Saham - 30 Investment Due Dilligence
 
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 29 Financial Ratio 03
 
Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02Pasar Saham - 28 Financial Ratio 02
Pasar Saham - 28 Financial Ratio 02
 
Pasar Saham -27 financial ratio 01
Pasar Saham -27 financial ratio  01Pasar Saham -27 financial ratio  01
Pasar Saham -27 financial ratio 01
 
Pasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow StatementPasar Saham - 26 Cash Flow Statement
Pasar Saham - 26 Cash Flow Statement
 

Recently uploaded

Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Obat Aborsi Jakarta ( Ampuh _ No. 1 ) Kandungan Jakarta
 
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar ( Asli Ampuh No.1 ) 082223109953
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953
 
tugas pelaksana lapangan pekerjaan saluran irigasi
tugas pelaksana lapangan pekerjaan saluran irigasitugas pelaksana lapangan pekerjaan saluran irigasi
tugas pelaksana lapangan pekerjaan saluran irigasi
frenkytanzil5
 
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Obat Aborsi Samarinda ( Asli Ampuh No.1 ) Samarinda
 
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di DepokKlinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang 082223109953 Jual obat aborsi
 
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
arisvanrush
 
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.pptTUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
Oloy2
 
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptxPetunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
pkmcipakudrive
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Cytotec Asli Di jakarta
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptx
HeriGeologist
 

Recently uploaded (18)

Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
Jual Obat Aborsi Jakarta Selatan 0822 2310 9953 Klinik Jual Obat Cytotec Asli...
 
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
 
UJI KOMPETENSI-Presentasi Bidang Jalan.pptx
UJI KOMPETENSI-Presentasi Bidang Jalan.pptxUJI KOMPETENSI-Presentasi Bidang Jalan.pptx
UJI KOMPETENSI-Presentasi Bidang Jalan.pptx
 
Pengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS GeodetikPengukuran Topografi menggunakan GPS Geodetik
Pengukuran Topografi menggunakan GPS Geodetik
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
 
tugas pelaksana lapangan pekerjaan saluran irigasi
tugas pelaksana lapangan pekerjaan saluran irigasitugas pelaksana lapangan pekerjaan saluran irigasi
tugas pelaksana lapangan pekerjaan saluran irigasi
 
Perencanaan Pelabuhan perikanan id.pptx
Perencanaan Pelabuhan perikanan  id.pptxPerencanaan Pelabuhan perikanan  id.pptx
Perencanaan Pelabuhan perikanan id.pptx
 
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
Jual Obat Aborsi Samarinda ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jua...
 
metode pengukuran waktu secaratidak langsung
metode pengukuran waktu secaratidak langsungmetode pengukuran waktu secaratidak langsung
metode pengukuran waktu secaratidak langsung
 
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di DepokKlinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
Klinik Obat Aborsi Di Depok Wa 082223109953 Klinik Aborsi Di Depok
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
 
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
703618627-PPT-INVESTIGASI-KECELAKAAN-KERJA.pptx
 
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.pptTUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
TUGAS PPT APRIZAL GEDUNG44yddafhhhhhhhhhhhhhhhh.ppt
 
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptxPetunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
 
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptxPROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
PROSEDUR DALAM MELAKUKAN PERHITUNGAN PEKERJAAN PINTU.pptx
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
 
Metode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptxMetode_Sampling bahan galian mineral.pptx
Metode_Sampling bahan galian mineral.pptx
 

Algoritma dan Struktur Data - Merge Sort

  • 1. Pengurutan Merge Algoritma dan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2. Pendahuluan Merge sort adalah metode pengurutan yang dilakukan dengan memecah penampung elemen tepat menjadi 2 sampai tersisa hanya menjadi 1 partisi, kemudian mengiterasi dengan membandingkan dan menggabungkan secara berulang.
  • 3. Proses - Memecah 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4 6 5 3 1 8 7 2 4
  • 4. Proses - Membandingkan Bandingkan satu per satu elemen yang sudah dipecah 6 5 3 1 8 7 2 4
  • 5. Proses - Tukar Tukar posisi elemen jika posisi tidak benar. Jika posisi sudah benar, maka lewati dan lanjut ke elemen berikutnya 5 6 3 1 8 7 2 4
  • 6. Proses - Bandingkan Lagi Lanjutkan ke dua elemen berikutnya untuk dibandingkan 5 6 3 1 8 7 2 4
  • 7. Proses - Tukar Lagi Tukar kembali 5 6 1 3 8 7 2 4
  • 8. Proses - Iterasi Selesai Setelah selesai, gabungkan elemen-elemen yang telah terurut tadi sehingga membentuk tabel-tabel baru seperti di gambar berikut 5 6 1 3 7 8 2 4 5 6 1 3 7 8 2 4
  • 9. Proses - Perbandingan Kembali Bandingkan: ● elemen pertama pada tabel pertama dengan elemen pertama pada tabel kedua dan sebaliknya secara bergantian ● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan elemen lainya 5 6 1 3 7 8 2 4 1 3
  • 10. Proses - Perbandingan Kembali Bandingkan: ● Pada tabel kedua sudah habis ● bandingkan elemen terakhir yang belum dimasukkan ke tabel baru (5) dengan elemen lainya (6) yang tersisa 5 6 1 3 7 8 2 4 1 3 5 6
  • 11. Hasil Iterasi Tabel yang baru yang siap dibandingkan dengan proses yang sama 5 6 1 3 7 8 2 4 1 3 5 6 2 4 7 8
  • 12. Perbandingan Tabel Baru Lakukan perbandingan seperti sebelumnya 1 3 5 6 2 4 7 8 1 2 3 4 5 6 7 8
  • 13. Pseudocode dengan List function mergeSort(Input m: list) → list if length(m) ≤ 1 → m var list left, right, result var integer middle = length(m) / 2 for each x in m up to middle begin add x to left end for each x in m after middle begin add x to right end left = mergeSort(left) right = mergeSort(right) result = merge(left, right) → result function merge(Input: left list,Input right: list) → list list result while (length(left) > 0 or length(right) > 0) do begin if (length(left) > 0 and length(right) > 0) if first(left) ≤ first(right) append first(left) to result left = rest(left) else append first(right) to result right = rest(right) else if length(left) > 0 append first(left) to result left = rest(left) else if length(right) > 0 append first(right) to result right = rest(right) end → result
  • 14. Kode C++ template <class M> void myMerge( M arr[], int lb, int mid, int ub ) { int i, j; int size1 = mid - lb + 1; int size2 = ub - mid; M* tmpArray1 = new M[size1]; M* tmpArray2 = new M[size2]; for( i=0; i<size1; i++ ) { tmpArray1[i] = arr[lb + i]; } for( j=0; j<size2; j++ ) { tmpArray2[j] = arr[mid + 1 + j]; } i = 0; j = i; … // lanjut ke slide berikutnya
  • 15. Kode C++ - lanjutan for( int k=lb; k<=ub; k++ ) { if (i == size1) { // Kalau range array pertama lebih kecil arr[k] = tmpArray2[j]; j++; } else if (j == size2) { // Kalau range array kedua lebih kecil arr[k] = tmpArray1[i]; i++; } else if ( tmpArray1[i] < tmpArray2[j] ) { arr[k] = tmpArray1[i]; i++; } else { arr[k] = tmpArray2[j]; j++; } } delete[] tmpArray1; // delete[] tmpArray2; // Bersihkan alokasi arraynya }
  • 16. Kode C++ - lanjutan 2 void mergeSort( int arr[], int lb, int ub ) { if (ub - lb > 1) { int mid = (lb + ub) / 2; mergeSort(arr, lb, mid); mergeSort(arr, mid + 1, ub); myMerge(arr, lb, mid, ub); } else { if (arr[ub] < arr[lb]) { int tmp = arr[ub]; arr[ub] = arr[lb]; arr[lb] = tmp; } } } // ==================== akhir dari prosedur ====================
  • 17. Kode C++ - lanjutan 3 (main) #include <iostream> using namespace std; int main() { int numbers[] = { 8, 40, 1, 5, 0, 9, 6, 4, 3, -1, 5 }; mergeSort(numbers, 0, 10); for (int i=0; i<10; i++) { cout << numbers[i]; cout << “ | “; } }
  • 18. Kompleksitas Worst Case O(n log n) Best Case O(n) Average Case O(n log n)