Senin, 28 November 2016

Kompleksitas Waktu untuk Algoritma Rekursif

KOMPLEKSITAS ALGORITMA : REKURSIF

1. Algoritma Menghitung Faktorial
Function faktorial(input n:integer):integer
   if n = 1 then
      faktorial ß 1
   else
      faktorial ß n*faktorial(n-1)
   endif
endfunction

Parameter Input :
n
Operasi Dasar      : perkalian

Relasi Rekurens :
T(n) =       0                   , n = 0
T(n) = T(n-1)+1            , n > 0

Kompleksitas Waktu :
T(n) = T(n-1) + 1                                   substitusi         T(n-1) = T(n-2) + 1
        = [T(n-2) + 1] + 1 = T(n-2) + 2     substitusi         T(n-2) = T(n-3) + 1
        = [T(n-3) + 2] + 1 = T(n-3) + 3
        = .....
        = T(0) + n
        = 0 + n
Jadi, T(n) = n
         T(n) O(n)

2.Algoritma Menghitung Pangkat
Function pangkat(input x,y:integer):integer
   if y = 0 then
      pangkat ß 1
   else
      pangkat ß pangkat(x,y-1)*x
   endif

endfunction

Parameter Input : n
Operasi Dasar      : =

Relasi Rekurens :
T(n) =       0                   , n = 0
T(n) = T(n-1)+1            , n > 0

Kompleksitas Waktu :
T(n) = T(n-1) + 1                                   substitusi         T(n-1) = T(n-2) + 1
        = [T(n-2) + 1] + 1 = T(n-2) + 2     substitusi         T(n-2) = T(n-3) + 1
        = [T(n-3) + 2] + 1 = T(n-3) + 3
        = .....
        = T(0) + n
        = 0 + n
Jadi, T(n) = n
         T(n) O(n)

3.Algoritma Menara Hanoi
Procedure hanoi(input n, A, B, C : integer)
Algoritma
   if n = 1 then
      write (‘Pindahkan piringan dari’,A,’ke’,B)
   else
      hanoi(n-1,A,C,B)
      write(Pindahkan piringan dari’,A,’ke’,B)
      hanoi(n-1,C,B,A)
   endif
endfunction

Relasi Rekurens :
T(n) =       1                  , n = 1
T(n) = 2T(n-1)+1          , n > 1

Kompleksitas Waktu :
T(n) = 1 + 2T(n-1)
        = 1 + 2(1 + 2T(n - 2)) = 1 + 2 + 22T(n - 2)
        = 1 + 2 + 22 (1 + 2T(n - 3)) = 1 + 2 + 22 + 23T(n - 3)
        = .....
        = (1 +2 + 22 + ..... + 2n-2) + 2n-1T(1)
        = 1 + 2 + 22 + ..... + 2n-2.1
        = 2n - 1
Jadi, T(n) = 2n – 1
         T(n) O(2n)


Sumber :
Desain & Analisis Algoritma – ZK Abdurahman Baizal
Munir, Renaldi. (2011). Algoritma & Pemrogramman Dalam Bahasa Pascal dan C. (edisi revisi). 

0 komentar:

Posting Komentar