Recursive Call Team Fasilkom
Intro Suatu analisis thd pemanggilan fungsi rekursif yang di hitung dari : Banyak langkah non rekursif (BASIS) Banyak langkah fungsi tersebut dalam bentuk rekursif
Fak(n) If n=1 then fak=1 ada 2 c utk non rekursif Else fak=n Fak(n) If n=1 then fak=1 ada 2 c utk non rekursif Else fak=n*fak(n-1) rekursif T(n) adalah waktu yg di perlukan utk memanggil fak(n) Jika n=1 maka T(1)=2 konstanta (c) Jika n1 maka T(n)=T(n-1)+2, krn ada 2 opr (* dan -)
Soal Lain Buat Algo untuk menampilkan tulisan “UDINUS” 10 kali dengan fungsi rekursif Buat Algo untuk menghitung penjumlahan 10 pangkat 0 sampai dengan 10 Pangkat N dengan fungsi rekursif Kemudian Hitung Jml langkahnya T(N)
Fungsi A Read(x) If x<0 then Y=x2 Fungsi B Read(y) B X=X+Y Y=X+Y 2 langkah 1 langkah 1 c 1 langkah 2 langkah 1 langkah 2 langkah ------------- 8+c
contoh Procedure Bla(x,y,n) If n0 then Else Y=x+1 Write(x,y) For i=1 to n do Y=x+y X=x+y Bla(x,y,n-1)
analisa For loop ((n-1)+2)+((n-1)+1)(p+1) ((n-1)+2)+((n-1)+1)(2+1)
analisa T(0)=3 c T(n)=4n+1+1+T(n-1) T(n)=T(n-1)+4n+2 Jadi
Contoh komplex Procedure test(var x:real;n:integer) Var a:array[1:n] of integer S,j:integer; procedure A; { for j=1 to n a[j]=x*j} { if n=1 or n=2 then x=x*x else { A; for j=1 to n a[j]=x+a[j] s=s+a[j] test(s,n-1); Read(y); if s>y then test(y-s,n-2) else test(y-s,n-2); test(y,n-2) }
Analisa Untuk procedure test T(n)=2n+c+3n+c+(T(n-1)+c)+(T(n-2)+c)+(T(n-2)+c) T(n)=2T(n-2)+T(n-1)+5n+7c T(n)=5n+T(n-1)+2T(n-2)+7c Jika c=0, maka T(n)=5n+T(n-1)+T(n-2)