Desain dan Analisis Algoritma Pertemuan 6 Brute Force
Salah satu teknik desain algoritma Brute Force Salah satu teknik desain algoritma Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way).
Example Menghitung an (a > 0, n adalah bilangan bulat tak-negatif) an = a × a × … × a (sebanyak n kali), jika n > 0 = 1 , jika n = 0 Algoritma: kalikan 1 dengan a sebanyak n kali
Example Menghitung n! (n bilangan bulat tak-negatif) n! = 1 × 2 × 3 × … × n , jika n > 0 = 1 , jika n = 0 Algoritma: kalikan n buah bilangan, yaitu 1, 2, 3, …, n, bersama-sama
Brute Force Sorting Apa sorting itu? A0 ≤ A1 ≤ A2 ≤ … An-1 ≤ An Perhatikan bahwa setelah sorting : A0 merupaka elemen dengan nilai terkecil A1 merupaka elemen dengan nilai terkecil setelah A0 … An merupaka elemen dengan nilai terbesar
Brute Force Sorting Dengan definisi di atas, susunlah algoritma brute force untuk mensorting A[0..n-1]
Brute Force Sorting
Selection Sort
Selection Sort Analisalah kompleksitas waktu selection sort Ө(n2)
Alternative Brute Force Sorting Apa sorting itu? A0 ≤ A1 ≤ A2 ≤ … An-1 ≤ An Perhatikan bahwa setelah sorting : A0 ≤ A1 A1 ≤ A2 A2 ≤ A3 …
Bubble Sort Algorithm bubbleSort(A[0..n-1]) //mensorting array A menggunakan bubble sort //input : array A[0..n-1] //output : array A[0..n-1] dalam keadaan terurut naik for i ← 0 to n – 2 do for j ← 0 to n – 2 – i do if A[j + 1] < A[j] swap A[j] and A[j + 1]
Bubble Sort Analisalah kompleksitas waktu bubble sort Ө(n2)
Brute Force Rarely a source of clever or efficeient algorithm BUT important algorithm design strategy Applicable to a very wide variety of problems Yields reasonable algorithms of at least some practical value with no limitation of instance size Expense of designing a more efficient algorithm may be unjustifiable if only a new instances of a problem need to be solved and a brute force algorithm can solve those instances with acceptable speed