1 / 61

Design and Analysis of Algorithm Divide and Conquer Algorithm

Design and Analysis of Algorithm Divide and Conquer Algorithm. Aryo Pinandito, ST, M.MT – PTIIK Universitas Brawijaya. History. Divide and Conquer dulunya adalah strategi militer yang dikenal dengan nama divide ut imperes .

nikita
Download Presentation

Design and Analysis of Algorithm Divide and Conquer Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Analysis of AlgorithmDivide and Conquer Algorithm Aryo Pinandito, ST, M.MT – PTIIK UniversitasBrawijaya

  2. History • Divide and Conquer dulunyaadalahstrategimiliter yang dikenaldengannamadivide utimperes. • Sekarangstrategitersebutmenjadistrategi fundamental di dalamilmukomputerdengannama Divide and Conquer.

  3. Definisi • Divide: membagimasalahmenjadibeberapaupa-masalah yang memilikikemiripandenganmasalahsemulanamunberukuranlebihkecil (idealnyaberukuranhampirsama), • Conquer: memecahkan (menyelesaikan) masing-masingupa-masalah (secararekursif), dan • Combine: mengabungkansolusimasing-masingupa-masalahsehinggamembentuksolusimasalahsemula.

  4. Definisi (2) • Obyekpermasalahan yang dibagi : • masukan (input) atau instances yang berukuran n seperti: • tabel (larik/array), • matriks, • eksponen, • dll, bergantungpadamasalahnya. • Tiap-tiapupa-masalahmempunyaikarakteristik yang sama (the same type) dengankarakteristikmasalahasal, sehinggametode Divide and Conquer lebih natural jikadiungkapkandalamskemarekursif.

  5. Skema Umum Algoritma Divide and Conquer

  6. Jika pembagian selalu menghasilkan dua upa-masalah yang berukuran sama:

  7. Divide and Conquer Minimum dan Maximum

  8. Contoh-contoh masalah • MencariNilai Minimum danMaksimum (Min Maks) • Persoalan: Misalkandiberikantabel A yang berukuran n elemendansudahberisinilai integer. • Carilahnilai minimum dannilaimaksimumsekaligus di dalamtabeltersebut.

  9. Penyelesaian dengan Algoritma Brute Force T(n) = (n – 1) + (n – 1) = 2n – 2 = O(n)

  10. Penyelesaian dengan Divide and Conquer

  11. Penyelesaiandengan Divide and Conquer • Ukurantabelhasilpembagiandapatdibuatcukupkecilsehinggamencari minimum danmaksimumdapatdiselesaikan (SOLVE) secaralebihmudah. • Dalamhalini, ukurankecil yang dipilihadalah 1 elemenatau 2 elemen.

  12. ContohAlgoritma • MinMaks(A, n, min, maks) • Algoritma: • Untukkasus n = 1 atau n = 2, SOLVE: Jika n = 1, maka min = maks = A[n] Jika n = 2, makabandingkankeduaelemenuntuk menentukan min danmaks. • Untukkasus n > 2, (a) DIVIDE: Bagiduatabel A menjadiduabagian 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

  13. Review Contoh

  14. KompleksitasWaktuAsimptotik

  15. Brute Force vs Divide and Conquer • MinMaks1 secara brute force : T(n) = 2n – 2 • MinMaks2 secara divide and conquer: T(n) = 3n/2 – 2 • Perhatikan: 3n/2 – 2 < 2n – 2 , n  2. • Kesimpulan: AlgoritmaMinMakslebihmangkusdenganmenggunakanmetode Divide and Conquer.

  16. Divide and Conquer Merge Sort, Insertion Sort, Quick Sort, Selection Sort

  17. Sorting denganMetode Divide and Conquer

  18. PendekatanpadaAlgoritmaSorting

  19. PendekatanpadaAlgoritmaSorting (2)

  20. (a) Merge Sort • Algoritma: 1. Untukkasus n = 1, makatabel A sudahterurutdengansendirinya (langkah SOLVE). 2. Untukkasus n > 1, maka (a) DIVIDE: bagitabel A menjadiduabagian, bagiankiridanbagiankanan, masing-masing bagianberukuran n/2 elemen. (b) CONQUER: Secararekursif, terapkan algoritma D-and-C padamasing-masing bagian. (c) MERGE: gabunghasilpengurutankedua bagiansehinggadiperolehtabel A yang terurut.

  21. Contoh Merge Sort

  22. Merge Sort denganMetode Divide dan Conquer

  23. KompleksitasWaktu Merge Sort

  24. Kompleksitas

  25. (b) Insertion Sort

  26. Insertion Sort dengan Divide and Conquer ProsedurMergedapatdigantidenganprosedurpenyisipansebuahelemen padatabel yang sudahterurut (lihatalgoritmaInsertion Sortversiiteratif).

  27. Divide, Conquer, and Solve

  28. Merge

  29. Kompleksitas Insertion Sort

  30. (c) Quick Sort • Termasukpadapendekatansulitmembagi, mudahmenggabung (hard split/easy join) • Tabel A dibagi (istilahnya: dipartisi) menjadi A1 dan A2 sedemikiansehinggaelemen-elemen A1 elemen-elemen A2.

  31. Quick Sort

  32. TeknikPartisi Quick Sort • pilih x  { A[1], A[2], ..., A[n] } sebagai pivot, • pindaitabeldarikirisampaiditemukan A[p]  x • pindaitabeldarikanansampaiditemukan A[q]  x • pertukarkan A[p]  A[q] • ulangi (2), dariposisi p + 1, dan (3), dariposisi q – 1 , sampaikeduapemindaianbertemu di tengahtabel

  33. Pseudocode Quick Sort

  34. Cara Pemilihan Pivot • Pivot = elemenpertama/elementerakhir/elementengahtabel • Pivot dipilihsecaraacakdarisalahsatuelementabel. • Pivot = elemen median tabel

  35. Kompleksitas Algoritma Quicksort: • Kasusterbaik (best case) • Kasusterbaikterjadibila pivot adalahelemen median sedemikiansehinggakeduaupatabelberukuranrelatifsamasetiap kali pempartisian.

  36. Recursive Tree Quick Sort: Best Case

  37. Kompleksitas Quick Sort: Best Case

  38. KompleksitasAlgoritma Quick Sort • Kasusterburuk (worst case) • Kasusiniterjadibilapadasetiappartisi pivot selaluelemenmaksimum (atauelemen minimum) tabel. • Kasusjikatabelsudahterurutmenaik/menurun

  39. Recursive Tree Quick Sort: Worst Case

  40. Kompleksitas Quick Sort: Worst Case

  41. Kompleksitas Quick Sort: Average Case • Kasus rata-rata (average case) • Kasusiniterjadijika pivot dipilihsecaraacakdarielementabel, danpeluangsetiapelemendipilihmenjadi pivot adalahsama. • Tavg(n) = O(n 2log n).

  42. (d) Selection Sort

  43. Pseudocode Selection Sort

  44. Contoh Selection Sort

  45. Kompleksitas Selection Sort

More Related