ALGORITMA DIVIDE AND CONQUER
PERT-2
DEFINISI
• Divide: membagi masalah menjadi beberapa masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama),
• Conquer: memecahkan (menyelesaikan) masing-masing masalah (secara rekursif), dan
• Combine: mengabungkan solusi masing-masing upa-masalah sehingga membentuk solusi masalah semula.
Contoh-contoh masalah
1. Mencari Nilai Minimum dan Maksimum (MinMaks)Persoalan: Misalkan diberikan tabel A yang berukuran n elemen dan sudah berisi nilai integer. Carilah nilai minimum dan nilai maksimum sekaligus di dalam tabel tersebut.
MinMaks(A, n, min, maks)Algoritma:1. Untuk kasus n = 1 atau n = 2, SOLVE: Jika n = 1, maka min = maks = A[n] Jika n = 2, maka bandingkan kedua elemen untuk menentukan min dan maks.1. Untuk kasus n > 2,
(a) DIVIDE: Bagi dua tabel A menjadi dua bagian yang sama, A1 dan A2
(b) CONQUER: MinMaks(A1, n/2, min1, maks1)
MInMaks(A2, n/2, min2, maks2)(c) COMBINE: if min1 <min2 then min <- min1 else min <- min2
if maks1 <maks2 then maks <- maks2 else maks <- maks1
MERGE SORT
Algoritma:1. Untuk kasus n = 1, maka tabel A sudah terurut dengan sendirinya (langkah
SOLVE).2. Untuk kasus n > 1, maka
(a) DIVIDE: bagi tabel A menjadi dua bagian, bagian kiri dan bagian kanan, masing-masing bagian berukuran n/2 elemen. (b) CONQUER: Secara rekursif, terapkan algoritma Divide and-Conquer pada masing-masing bagian. (c) MERGE: gabung hasil pengurutan kedua bagian sehingga diperoleh tabel A yang terurut.
INSERTION SORT
• Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi
• dua bagian, yang belum diurutkan dan yang sudah diurutkan
• Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan.
• Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang
• tersisa pada bagian array yang belum diurutkan.
QUICK SORT
• 1. Divide
• Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r]
• dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.
• 2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif
SELECTION SORT
• algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.
LP pert 3
LP: 1. Apa yang kamu ketahui tentang metode Brute Force?2. Tuliskanlah algoritma Brute Force!3. Berikan contoh kasus&penyelesaian dengan Brute Force ?
Top Related