Download - Divide and Conquer-pert2

Transcript
Page 1: Divide and Conquer-pert2

ALGORITMA DIVIDE AND CONQUER

PERT-2

Page 2: Divide and Conquer-pert2

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.

Page 3: Divide and Conquer-pert2

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.

Page 4: Divide and Conquer-pert2

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

Page 5: Divide and Conquer-pert2

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.

Page 6: Divide and Conquer-pert2

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.

Page 7: Divide and Conquer-pert2

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

Page 8: Divide and Conquer-pert2
Page 9: Divide and Conquer-pert2
Page 10: Divide and Conquer-pert2

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.

Page 11: Divide and Conquer-pert2

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 ?