Sabtu, 24 Desember 2011

Function recursive

Function recursive adalah sebuah function yang berisi definisi serta memanggil dirinya sendiri dan hanya dapat menyelesaikan base case saja dan apabila tidak ada base case, maka masalah akan dipecahkan ke masalah yang lebih kecil dan kemudian function akan bekerja pada masalah yang lebih kecil tersebut serta pelan-pelan masalah-masalah yang kecil tersebut akan menjadi base case sehingga dapat dipecahkan.

Keuntungan:
- dapat membuat function yang lebih singkat apabila dibandingkan dengan function biasa (iteration function)

Kelemahan:
- banyak memakan memory
- apabila nilai yang dikerjakan oleh function tersebut sangat besar, maka kinerjanya akan menjadi lambat dibandingkan dengan function biasa.
- program menjadi sulit dibaca
- seringkali tidak bisa berhenti sehingga memory akan terpakai habis dan program bisa menjadi hang.

Contoh:
int fibo_r (int n){
if(n==1) return 1; //base case
else if(n==2) return 1;
else return fibo_r(n-1) + fibo_r(n-2);
}

1 komentar: