Terdapat beragam klasifikasi algoritma dan setiap
klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan
klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma
dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa
paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan
dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak
algoritma yang berbeda.
Divide and Conquer,
paradigma untuk membagi suatu permasalahan besar menjadi
permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini
dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah
untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan
membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan
kecil yang terbentuk.
Dynamic programming,
paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu
masalah yang mengandung sub-struktur yang optimal (, dan mengandung
beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas
terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba
untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil,
tapi secara intrinsik ada perbedaan dari karakter permasalahan yang
dihadapi.
Metode serakah.
Sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik,
bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap
tahap;
dan menggunakan pilihan "serakah" apa yang dilihat terbaik pada saat itu.
0 Komentar