Академический Документы
Профессиональный Документы
Культура Документы
KHAERYNA ADAM
P3500216017
1. Perhatikan pseudo-code dari algoritma perkalian dua matriks A dan B berikut secara rekursif
menggunakan strategi Divide-and-Conquer.
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
𝑐𝑛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