Algoritma Rekursif Alpro-2
REKURSIF alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari masalah terjadi berulang kali (for, while dan do-while) subrutin yang memanggil dirinya sendiri, baik langsung maupun tak langsung. subrutin rekursi bisa menyelesaikan tugas kompleks dalam beberapa baris perintah
Iterasi Mrk Jadi: perkataan berulang-ulang peralatan yang lebih efisien jika dibandingkan dengan rekursif tetapi recursion menyediakan solusi yang lebih baik untuk suatu masalah. Jadi: Pada rekursif, method dapat memanggil dirinya sendiri Data yang berada dalam method tersebut seperti argument disimpan sementara kedalam stack sampai method pemanggilnya diselesaikan.
c/ Faktorial Faktorial (5) / \ Faktorial (4)*5 / \ Faktorial (3)*4 / \ Faktorial (4)*5 / \ Faktorial (3)*4 Faktorial (2)*3 Faktorial (1)*2 | 1 Algoritma: n!= n.(n-1)! , jika n>1 n!= 1 , jika n=0, 1 int Faktorial(int n) { if ((n == 0) || (n == 1 )) return (1); else return (n * Faktorial(n-1)); }
Bilangan Fibonacci Baris dari n=1 1 1 2 3 5 8 13 21 34 1 1 2 3 5 8 13 21 34 Algoritma (untuk n > 2): fn = fn-1 + fn-2 f1 = 1 f2 = 1 c/ n= 4 f4 = f3+f2 f4 = (f2+f1) + f2 f4 = (1+1) +1 f4 = 3 If (n ==1 || n==2) Then return (l) Else return (Fibonacci(n-1)+Fibonacci(n-2)) Endif
Kombinasi input n, r : integer If (n < r) Then return (0) Else return (Faktorial(n)/Faktorial(r)*Faktorial(n-r)) Endif
Permutasi input n, r : integer If (n< r) Then return (0) Else return (Faktorial(n) / Faktorial(n-r)) Endif
Studi Kasus-1: Output deretS =1+2+3+4+5+...+n input n:integer If (n==1) Then return (n) Else return (n + S(n-1)) Endif
Studi Kasus-2 input n:integer If (n==1) Then return (2) Else Output deret S = 2+4+6+8+10+...+2n input n:integer If (n==1) Then return (2) Else return (2*n + S(n-1)) Endif