Rekursif- studi kasus
Kasus 1- pangkat
Kasus 1- pangkat (2) Function pangkat (x, y) Hasil ← 1 If y = 0 then pangkat(x,y) ←1 Else Hasil ← x * pangkat(x, y-1) Return
Kasus : Faktorial 5! = 5 x 4 x 3 x 2 x 1 = 5 x 4! 1! = 1 0!=1
Kasus : Faktorial 5! = 5 x 4! 4! = 4 x 3! 3! = 3 x 2! 2! = 2 x 1! 0! = 1 5! = 5 x 4 x 3 x 2 x 1x1
Kasus : Faktorial faktorial(5) hasilnya : 120
Kasus 2- faktorial Function faktorial(n) Return Function faktorial (n) Hasil ← 1 If (n=0) then hasil ← 1 Else For j ← 1 to n do Hasil ← hasil * j Endfor Endif Return hasil Function faktorial(n) If (n=0) then faktorial (n) ← 1 Else faktorial(n) ← n * faktorial (n-1) endif Return
Mekanisme Function faktorial(n) If (n=0) then faktorial (n) ← 1 Else faktorial(n) ← n * faktorial (n-1) Return Misal n = 4 Faktorial(0) 1 Faktorial(1) 1 * faktorial(1-1) 1 * 1 Faktorial(2) 2 * faktorial(2-1) 2 * (1 * 1) Faktorial(3) 3 * faktorial(3-1) 3 * (2 * (1 * 1)) Faktorial (4) 4 * faktorial(4-1) 4 * (3 * (2 * (1 * 1)))
Studi kasus 3-fibbonaci 1 1 2 3 5 8 13 21 34 55 89 … dapat dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan N, yaitu bilangan ke-(N-1) dan bilangan ke-(N-2), sehingga dapat dirumuskan sebagai Fibbonacci(1) = 1 (1) Fibbonacci(2) = 1 (2) Fibbonacci(N) = Fibbonacci(N-1) + Fibbonacci(N-2) (3) Dengan persamaan (1) dan (2) adalah basis dan persamaan (3) adalah rekurensnya
Fibbonacci-rekursif if ((N=1) or (N=2)) then return 1 {Basis} else return(FIBO(N-1)+ FIBO(N-2)) {Rekurens}
Contoh analisis algoritma rekursif Misal:
Menghitung kompleksitas waktu
We must have n – 1 of the “+ 2” terms because there was one at the start and we did n – 2 substitutions: So, the closed form of the equation is: