Brute force : pendekatan yang lurus (straightforward) untuk memecahkan suatu masalah
Biasanya didasarkan pada:
*pernyataan masalah (problem statement)
*definisi konsep yang dilibatkan.
Algoritma brute force memecahkan masalah dengan
*sangat sederhana,
*langsung,
*jelas (obvious way).
Just do it
IMPLEMENTASI (Berdasarkan Kasus)
Mencari elemen terbesar (terkecil)
*Persoalan: Diberikan sebuah senarai yang beranggotakan n buah bilangan bulat (a1, a2, …, an). Carilah elemen terbesar di dalam senarai tersebut.
*Algoritma brute force: bandingkan setiap elemen senarai untuk menemukan elemen terbesar
Kompleksitas waktu algoritma: O(n).
Pencarian beruntun (Sequential Search)
* Persoalan: Diberikan senarai yang berisi n buah bilangan bulat (a1, a2, …, an). Carilah nilai x di dalam senara tersebut. Jika x ditemukan, maka keluarannya adalah indeks elemen senarai, jika x tidak ditemukan, maka keluarannya adalah 0.
* Algoritma brute force (sequential serach): setiap elemen senarai dibandingkan dengan x. Pencarian selesai jika x ditemukan atau elemen senarai sudah habis diperiksa.
Adakah algoritma pencarian elemen yang lebih mangkus daripada brute force?
IMPLEMENTASI (Berdasarkan Konsep Yang Terlibat)
Menghitung a^n (a > 0, n adalah bilangan bulat tak-negatif)
Kompleksitas waktu algoritma: O(n).
Adakah algoritma perpangkatan yang lebih mangkus daripada brute force?
Menghitung n! (n bilangan bulat tak-negatif)
Mengalikan dua buah matriks, A dan B
Adakah algoritma perkalian matriks yang lebih mangkus daripada brute force?
Menemukan semua faktor dari bilangan bulat n (selain dari 1 dan n itu sendiri)
Adakah algoritma pemfaktoran yang lebih baik daripada brute force?
Algoritma Pengurutan Brute Force
* Algoritma apa yang memecahkan masalah pengurutan secara brute force?
▪ Bubble sort dan selection sort!
* Kedua algoritma ini memperlihatkan teknik brute force dengan jelas sekali.
Tidak ada komentar:
Posting Komentar