Вы находитесь на странице: 1из 14

MID TEST ANALISIS ALGORITMA

KHAERYNA ADAM
P3500216017

1. Perhatikan pseudo-code dari algoritma perkalian dua matriks A dan B berikut secara rekursif
menggunakan strategi Divide-and-Conquer.

UJIAN (A,p,r) PARTISI (A, p, r)


1 if 𝑝 < 𝑟 then 1 𝑥 ← 𝐴[𝑟]
2 q ← PARTISI (A, p, r) 2 𝑖 ← p−1
3 UJIAN (A, p, q-1) 3 for 𝑗 ← p to 𝑟 − 1
4 UJIAN (A, q+1, r) 4 if 𝐴[𝑗] ≤ 𝑥 then
5 𝑖 ←𝑖+1
6 tukar 𝐴[𝑖] ↔ 𝐴[𝑗]
7 tukar 𝐴[𝑖 + 1] ↔ 𝐴[𝑟]
8 return 𝑖 + 1

a. Buat simulasi dari algoritma dengan data larik A diambil dari 9 digit terakhir nomor
ponsel Anda.
Penyelesaian:
SIMULASI
1 2 3 4 5 6 7 8 9
Misalkan: A= 2 9 1 9 1 3 1 3 1
x = variabel sementara p=1 r=9
UJIAN(A, 1, 9)
if 1 < 9 then ≡ T
q = PARTISI (A, 1, 9)
𝑥 = 𝐴[9] =1
𝑖 =p−1 =1−1=0
for 𝑗 = 1 to 𝑟 − 1 = 9 − 1 = 8
if 𝐴[1] ≤ 1 then ≡F
for 𝑗 = 2 to 8
if 𝐴[2] ≤ 1 then ≡F
for 𝑗 = 3 to 8
if 𝐴[3] ≤ 1 then ≡T
𝑖 =𝑖+1=0+1=1
tukar 𝐴[1] ↔ 𝐴[3] A= 1 9 2 9 1 3 1 3 1
for 𝑗 = 4 to 8
if 𝐴[4] ≤ 1 then ≡F
for 𝑗 = 5 to 8
if 𝐴[5] ≤ 1 then ≡T
𝑖 =𝑖+1=1+1=2
tukar 𝐴[2] ↔ 𝐴[5] A= 1 1 2 9 9 3 1 3 1
for 𝑗 = 6 to 8
if 𝐴[6] ≤ 1 then ≡F
for 𝑗 = 7 to 8
if 𝐴[7] ≤ 1 then ≡T
𝑖 =𝑖+1=2+1=3
tukar 𝐴[3] ↔ 𝐴[7] A= 1 1 1 9 9 3 2 3 1
for 𝑗 = 8 to 8
if 𝐴[8] ≤ 1 then ≡F
tukar 𝐴[4] ↔ 𝐴[9] A= 1 1 1 1 9 3 2 3 9
return 𝑖 + 1 = 3 + 1 = 4
𝑞=4
UJIAN (A, 1, 3) // UJIAN (A, p, q-1)
if 1 < 3 then ≡ T
q = PARTISI (A, 1, 3)
𝑥 = 𝐴[3] =1
𝑖 =p−1 =1−1=0
for 𝑗 = 1 to 3 − 1 = 2
if 𝐴[1] ≤ 1 then ≡T
𝑖 =𝑖+1=0+1=1
tukar 𝐴[1] ↔ 𝐴[1] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 2 to 2
if 𝐴[2] ≤ 1 then ≡T
𝑖 =𝑖+1=1+1=2
tukar 𝐴[2] ↔ 𝐴[2] A= 1 1 1 1 9 3 2 3 9
tukar 𝐴[3] ↔ 𝐴[3] A= 1 1 1 1 9 3 2 3 9
return 𝑖 + 1 = 2 + 1 = 3
𝑞=3
UJIAN (A, 1, 2) // UJIAN (A, p, q-1)
if 1 < 2 then ≡ T
q = PARTISI (A, 1, 2)
𝑥 = 𝐴[2] =1
𝑖 =p−1 =1−1=0
for 𝑗 = 1 to 2 − 1 = 1
if 𝐴[1] ≤ 1 then ≡T
𝑖 =𝑖+1=0+1=1
tukar 𝐴[1] ↔ 𝐴[1] A= 1 1 1 1 9 3 2 3 9
tukar 𝐴[2] ↔ 𝐴[2] A= 1 1 1 1 9 3 2 3 9
return 𝑖 + 1 = 1 + 1 = 2
𝑞=2
UJIAN (A, 1, 1)
if 1 < 1 then ≡ F
UJIAN (A, 3, 9) UJIAN (A, q+1, r)
if 3 < 9 then ≡ T
q = PARTISI (A, 3, 9)
𝑥 = 𝐴[9] =9
𝑖 = (𝑞 + 1) − 1 = 3 − 1 = 2
for 𝑗 = 3 to 𝑟 − 1 = 9 − 1 = 8
if 𝐴[3] ≤ 9 then ≡T
𝑖 =𝑖+1=2+1=3
tukar 𝐴[3] ↔ 𝐴[3] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 4 to 8
if 𝐴[4] ≤ 9 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 5 to 8
if 𝐴[5] ≤ 9 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 6 to 8
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 7 to 8
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 8 to 8
if 𝐴[8] ≤ 9 then ≡T
𝑖 =𝑖+1=7+1=8
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 9 3 2 3 9
tukar 𝐴[9] ↔ 𝐴[9] A= 1 1 1 1 9 3 2 3 9
return 𝑖 + 1 = 8 + 1 = 9
𝑞=9
UJIAN (A, 3, 8) // UJIAN (A, p, q-1)
if 3 < 8 then ≡ T
q = PARTISI (A, 3, 8)
𝑥 = 𝐴[8] =3
𝑖 =p−1 =3−1=2
for 𝑗 = 3 to 8 − 1 = 7
if 𝐴[3] ≤ 3 then ≡T
𝑖 =𝑖+1=2+1=3
tukar 𝐴[3] ↔ 𝐴[3] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 4 to 7
if 𝐴[4] ≤ 3 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 9 3 2 3 9
for 𝑗 = 5 to 7
if 𝐴[5] ≤ 3 then ≡F
for 𝑗 = 6 to 7
if 𝐴[6] ≤ 3 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[6] A= 1 1 1 1 3 9 2 3 9
for 𝑗 = 7 to 7
if 𝐴[7] ≤ 3 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[7] A= 1 1 1 1 3 2 9 3 9
tukar 𝐴[7] ↔ 𝐴[8] A= 1 1 1 1 3 2 3 9 9
return 𝑖 + 1 = 6 + 1 = 7
𝑞=7
UJIAN (A, 3, 6) // UJIAN (A, p, q-1)
if 3 < 6 then ≡ T
q = PARTISI (A, 3, 6)
𝑥 = 𝐴[6] =2
𝑖 =p−1 =3−1=2
for 𝑗 = 3 to 6 − 1 = 5
if 𝐴[3] ≤ 2 then ≡T
𝑖 =𝑖+1=2+1=3
tukar 𝐴[3] ↔ 𝐴[3] A= 1 1 1 1 3 2 3 9 9
for 𝑗 = 4 to 5
if 𝐴[4] ≤ 2 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 3 2 3 9 9
for 𝑗 = 5 to 5
if 𝐴[5] ≤ 2 then ≡F
tukar 𝐴[5] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 4 + 1 = 5
𝑞=5
UJIAN (A, 3, 4) // UJIAN (A, p, q-1)
if 3 < 4 then ≡ T
q = PARTISI (A, 3, 4)
𝑥 = 𝐴[4] =1
𝑖 =p−1 =3−1=2
for 𝑗 = 3 to 4 − 1 = 3
if 𝐴[3] ≤ 1 then ≡T
𝑖 =𝑖+1=2+1=3
tukar 𝐴[3] ↔ 𝐴[3] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 3 + 1 = 4
𝑞=4
UJIAN (A, 3, 3) // UJIAN (A, p, q-1)
if 3 < 3 then ≡ F
UJIAN (A, 5, 9) UJIAN (A, q+1, r)
if 5 < 9 then ≡ T
q = PARTISI (A, 5, 9)
𝑥 = 𝐴[9] =9
𝑖 = (𝑞 + 1) − 1 = 5 − 1 = 4
for 𝑗 = 5 to 𝑟 − 1 = 9 − 1 = 8
if 𝐴[5] ≤ 9 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 6 to 8
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 7 to 8
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 8 to 8
if 𝐴[8] ≤ 9 then ≡T
𝑖 =𝑖+1=7+1=8
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[9] ↔ 𝐴[9] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 8 + 1 = 9
𝑞=9
UJIAN (A, 4, 8) // UJIAN (A, p, q-1)
if 4 < 9 then ≡ T
q = PARTISI (A, 4, 8)
𝑥 = 𝐴[8] =9
𝑖 =4−1=3
for 𝑗 = 4 to 𝑟 − 1 = 8 − 1 = 7
if 𝐴[4] ≤ 9 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 5 to 7
if 𝐴[5] ≤ 9 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 6 to 7
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 7 to 7
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 7 + 1 = 8
𝑞=8
UJIAN (A, 4, 7) // UJIAN (A, p, q-1)
if 4 < 7 then ≡ T
q = PARTISI (A, 4, 7)
𝑥 = 𝐴[7] =3
𝑖 =4−1=3
for 𝑗 = 4 to 𝑟 − 1 = 7 − 1 = 6
if 𝐴[4] ≤ 3 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 5 to 6
if 𝐴[5] ≤ 3 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 6 to 6
if 𝐴[6] ≤ 3 then ≡F
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 6 + 1 = 7
𝑞=7
UJIAN (A, 4, 6) // UJIAN (A, p, q-1)
if 4 < 6 then ≡ T
q = PARTISI (A, 4, 6)
𝑥 = 𝐴[6] =3
𝑖 =4−1=3
for 𝑗 = 4 to 𝑟 − 1 = 6 − 1 = 5
if 𝐴[4] ≤ 3 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 5 to 𝑟 − 1 = 6 − 1 = 5
if 𝐴[5] ≤ 3 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 5 + 1 = 6
𝑞=6
UJIAN (A, 4, 5) // UJIAN (A, p, q-1)
if 4 < 5 then ≡ T
q = PARTISI (A, 4, 5)
𝑥 = 𝐴[5] =2
𝑖 =4−1=3
for 𝑗 = 4 to 𝑟 − 1 = 5 − 1 = 4
if 𝐴[4] ≤ 2 then ≡T
𝑖 =𝑖+1=3+1=4
tukar 𝐴[4] ↔ 𝐴[4] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 4 + 1 = 5
𝑞=5
UJIAN (A, 4, 4) // UJIAN (A, p, q-1)
if 4 < 4 then ≡ F
UJIAN (A, 6, 9) UJIAN (A, q+1, r)
if 6 < 9 then ≡ T
q = PARTISI (A, 6, 9)
𝑥 = 𝐴[9] =9
𝑖 =6−1=5
for 𝑗 = 6 to 𝑟 − 1 = 9 − 1 = 8
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 7 to 8
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 8 to 8
if 𝐴[8] ≤ 9 then ≡T
𝑖 =𝑖+1=7+1=8
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[9] ↔ 𝐴[9] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 8 + 1 = 9
𝑞=9
UJIAN (A, 5, 8) // UJIAN (A, p, q-1)
if 5 < 8 then ≡ T
q = PARTISI (A, 5, 8)
𝑥 = 𝐴[8] =9
𝑖 =5−1=4
for 𝑗 = 5 to 𝑟 − 1 = 8 − 1 = 7
if 𝐴[5] ≤ 9 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 6 to 7
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 7 to 7
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 7 + 1 = 8
𝑞=8
UJIAN (A, 5, 7) // UJIAN (A, p, q-1)
if 5 < 7 then ≡ T
q = PARTISI (A, 5, 7)
𝑥 = 𝐴[7] =3
𝑖 =5−1=4
for 𝑗 = 5 to 𝑟 − 1 = 7 − 1 = 6
if 𝐴[5] ≤ 3 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 6 to 6
if 𝐴[6] ≤ 3 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 6 + 1 = 7
𝑞=7
UJIAN (A, 5, 6) // UJIAN (A, p, q-1)
if 5 < 6 then ≡ T
q = PARTISI (A, 5, 6)
𝑥 = 𝐴[6] =3
𝑖 =5−1=4
for 𝑗 = 5 to 𝑟 − 1 = 6 − 1 = 5
if 𝐴[5] ≤ 3 then ≡T
𝑖 =𝑖+1=4+1=5
tukar 𝐴[5] ↔ 𝐴[5] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 5 + 1 = 6
𝑞=6
UJIAN (A, 5, 5) // UJIAN (A, p, q-1)
if 5 < 5 then ≡ F
UJIAN (A, 7, 9) UJIAN (A, q+1, r)
if 7 < 9 then ≡ T
q = PARTISI (A, 7, 9)
𝑥 = 𝐴[9] =9
𝑖 =7−1=6
for 𝑗 = 7 to 𝑟 − 1 = 8
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 8 to 8
if 𝐴[8] ≤ 9 then ≡T
𝑖 =𝑖+1=7+1=8
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[9] ↔ 𝐴[9] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 8 + 1 = 9
𝑞=9
UJIAN (A, 6, 8) // UJIAN (A, p, q-1)
if 6 < 8 then ≡ T
q = PARTISI (A, 6, 8)
𝑥 = 𝐴[8] =9
𝑖 =6−1=5
for 𝑗 = 6 to 𝑟 − 1 = 8 − 1 = 7
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
for 𝑗 = 7 to 7
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 7 + 1 = 8
𝑞=8
UJIAN (A, 6, 7) // UJIAN (A, p, q-1)
if 6 < 7 then ≡ T
q = PARTISI (A, 6, 7)
𝑥 = 𝐴[7] =3
𝑖 =6−1=5
for 𝑗 = 6 to 𝑟 − 1 = 7 − 1 = 6
if 𝐴[6] ≤ 9 then ≡T
𝑖 =𝑖+1=5+1=6
tukar 𝐴[6] ↔ 𝐴[6] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 6 + 1 = 7
𝑞=7
UJIAN (A, 6, 6) // UJIAN (A, p, q-1)
if 6 < 6 then ≡ F
UJIAN (A, 8, 9) UJIAN (A, q+1, r)
if 8 < 9 then ≡ T
q = PARTISI (A, 8, 9)
𝑥 = 𝐴[9] =9
𝑖 =8−1=7
for 𝑗 = 8 to 𝑟 − 1 = 8
if 𝐴[8] ≤ 9 then ≡T
𝑖 =𝑖+1=7+1=7
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[9] ↔ 𝐴[9] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 8 + 1 = 9
𝑞=9
UJIAN (A, 7, 8) // UJIAN (A, p, q-1)
if 7 < 8 then ≡ T
q = PARTISI (A, 7, 8)
𝑥 = 𝐴[8] =9
𝑖 =7−1=6
for 𝑗 = 7 to 𝑟 − 1 = 8 − 1 = 7
if 𝐴[7] ≤ 9 then ≡T
𝑖 =𝑖+1=6+1=7
tukar 𝐴[7] ↔ 𝐴[7] A= 1 1 1 1 2 3 3 9 9
tukar 𝐴[8] ↔ 𝐴[8] A= 1 1 1 1 2 3 3 9 9
return 𝑖 + 1 = 7 + 1 = 8
𝑞=8
UJIAN (A, 7, 7) // UJIAN (A, p, q-1)
if 7 < 7 then ≡ F
UJIAN (A, 9, 9) UJIAN (A, q+1, r)
if 9 < 9 then ≡ F

A= 1 1 1 1 2 3 3 9 9

b. Tentukan kompleksitas (dalam hal ini running time) dari algoritma. Nyatakan
dalam fungsi rekurensi yang Anda dapatkan dalam bentuk implisit dengan
melakukan langkah-langkah berikut; gunakan Teorema Master untuk
menentukan fungsi asimptotik, lalu tunjukkan Pohon Rekursi dan buktikan
dengan metode subsitusi.
Penyelesaian:
𝑇(𝑛) = Θ(1) jika 𝑛 = 1
𝑛
𝑇(𝑛) = 16𝑇 ( ) + Θ(𝑛2 ) jika 𝑛 > 1
2

Dengan menggunakan Teorema Master diperoleh:


𝑎 = 16, 𝑏 = 2, dan 𝑓(𝑛) = Θ(𝑛2 )
sehingga 𝑛log𝑏 𝑎 = 𝑛log2 16 = 𝑛4. Berdasarkan Teorema Master 1 maka 𝑇(𝑛) = Θ(𝑛4 )
dengan menggunakan Pohon Rekursi :
𝑇(𝑛) = c jika 𝑛 = 1
𝑛
𝑇(𝑛) = 8𝑇 (2 ) + 𝑐𝑛4 jika 𝑛 > 1

𝑐𝑛2 → 𝑐𝑛2
log 𝑏 𝑛

𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 𝑐𝑛2 /16 → 16((𝑐𝑛2 /16 )

𝑐 𝑐 𝑐 𝑐 𝑐 𝑐 𝑐 𝑐 → 𝑐𝑛4
log𝑏 𝑛−1
𝑛
𝑇(𝑛) = 𝑐𝑛4 + ∑ (16)𝑗 𝑓 ( 𝑗 )
2
𝑗=0

Menggunakan Subtitusi :
𝑇(𝑛) = Θ(1) jika 𝑛 = 1
𝑛
𝑇(𝑛) = 16𝑇 (2 ) + Θ(𝑛2 ) jika 𝑛 > 1
log𝑏 𝑛−1
𝑛
Tebak 𝑇(𝑛) = 𝑛4 + ∑ (16)𝑗 𝑓 ( 𝑗 )
2
𝑗=0

log𝑏 𝑛−1
𝑛
Basis: 𝑛 = 1 → 𝑐𝑛4 + ∑ (16)𝑗 𝑓 ( 𝑗 ) = 1 = 𝑇(𝑛)
2
𝑗=0

Langkah induktif :
𝑛
𝑇(𝑛) = 16𝑇 ( ) + 𝑛2
2
log𝑏 𝑛−1
𝑛 4 𝑛
= 16 ( ) + ∑ (16)𝑗 𝑓 ( 𝑗 ) + 𝑛2
2 2
𝑗=0
log𝑏 𝑛−1
𝑛
= 𝑛 + ∑ (16)𝑗 𝑓 ( 𝑗 )
4
2
𝑗=0

𝑗
2. Misalkan 𝑥1 , 𝑥2 , … , 𝑥𝑛 adalah barisan bilangan asli dan 𝑠𝑢𝑚(𝑖, 𝑗) = ∑𝑖 𝑥𝑘 𝑖 ≤ 𝑗 . Rancang 2
algoritma menggunakan Metode Greedy dan Dynamic Programming untuk mencari 𝑖 dan 𝑗
sedemikian nilai 𝑠𝑢𝑚(𝑖, 𝑗) adalah maksimum.
Penyelesaian:
Greedy Method Algorithm
1 Inisialisasi variabel 𝑛, data[0. . 𝑛], sum[0. . 𝑛], 𝑧, 𝑥
2 Input 𝑛, 𝑥
3 Max → -∞
4 if (𝑛 < 𝑥)
5 cetak “Error”
6 else
7 for (𝑖 = 0; 𝑖 < 𝑛; 𝑖 + +)
8 Input data[𝑖]
9 end
10 end
11 for (𝑖 = 0; 𝑖 < 𝑛; 𝑖 + +)
12 for (𝑗 = 𝑖; (𝑗 < (𝑥 + 𝑖)&(𝑗 < 𝑛)); 𝑗 + +)
13 sum[𝑖]+= data[𝑗]
14 end
15 Max = 𝑚𝑎𝑡ℎ. max(𝑚𝑎𝑥, sum[𝑖])
16 end
17 cetak Max
18 end

Dynamic Method Algorithm


1 Inisialisasi variabel 𝑛, data[0. . 𝑛], sum[0. . 𝑛], 𝑧, 𝑥
2 Input 𝑛, 𝑥
3 Max → -∞
4 if (n < x )
5 cetak “Error”
6 else
7 for (𝑖 = 0; 𝑖 < 𝑛; 𝑖 + +)
8 Input data[𝑖]
9 end
10 end
11 for (𝑖 = 0; 𝑖 < 𝑛; 𝑖 + +)
12 if (𝑖 < 𝑥)
13 sum[𝑖]+= data[𝑗]
14 else if (𝑖 < (𝑛 − 𝑖))
15 sum = data[𝑖] + sum − data[𝑖 − (𝑥 − 1)]
16 end
17 Max = 𝑚𝑎𝑡ℎ. max(𝑚𝑎𝑥, sum)
18 end
19 cetak Max

Вам также может понравиться