Soal :
1. Berikut ini adalah beberapa persamaan yang melambangkan running time dari sebuah
algoritma divide and conquer. Untuk tiap persamaan, berikan time complexity dari
algoritma tersebut jika Master Theorem bisa diaplikasikan pada persamaan tersebut (jika
tidak bisa, tuliskan bahwa Master Theorem tidak bisa diaplikasikan)!
a. T(n)=7 T(n2)+7n3
b. T(n)=2 T(n4)+n
c. T(n)=2n T(n3)+n
d. T(n)=10 T(n2)+3n3+n2+4n log n+1
e. T(n)=3 T(n2)+n2log n
2. Seorang desainer algoritma akan membuat sebuah algoritma menggunakan konsep divide
and conquer. Setelah dirancang, algoritma tersebut ternyata memiliki pemanggilan fungsi
secara rekursif sebanyak 8 kali. Pada setiap pemanggilan rekursi, ukuran input yang
digunakan adalah setengah dari ukuran input awal. Selain itu, ternyata algoritma tersebut
membutuhkan sebuah proses penggabungan output dari rekursi yang time
complexity-nya O(n4).
c. T(n) = 2n T(n/3) + n
a = 2n.
Nilai a harusnya bersifat konstan. Tapi, Nilai 2n ini merupakan sesuatu yang tidak
konstan karena berubah-ubah sesuai ukuran input. Jadi, Master Theorem tidak bisa
dipakai untuk kasus ini.
1) Time complexity dari algoritma divide and conquer dengan 8 pemanggilan rekursif dan
ukuran input yang berkurang setengahnya pada setiap pemanggilan rekursif adalah
O(nlog n), karena setiap level rekursi membagi ukuran input menjadi dua.
Namun, karena proses penggabungan output memiliki time complexity O(n^4), maka
keseluruhan time complexity dari algoritma tersebut adalah O(n^4 log n).
3) Jika proses penggabungan output dapat dipercepat lagi menjadi O(n^2), maka
keseluruhan time complexity dari algoritma tersebut akan menjadi O(n^2 log n).
Kembali, ini karena time complexity dari proses penggabungan output akan menjadi
faktor dominan dalam keseluruhan time complexity setelah dipercepat.