Istilah non-rekursif dari hubungan perulangan adalah pekerjaan untuk menggabungkan solusi dari subproblem. Level dari pohon perulangan (biner) Anda mengandung subproblem dengan ukuran , jadi Anda harus terlebih dahulu menemukan pekerjaan total pada level dan kemudian meringkas pekerjaan ini pada semua tingkat pohon.k2kn2kk
Misalnya, jika pekerjaannya adalah konstan , maka total pekerjaan pada level akan menjadi , dan total waktu akan diberikan dengan jumlah berikut:Ck2k⋅ CT( n )
T( n ) =∑k = 1catatan2n2kC= C(2catatan2n +1- 2 ) = Θ ( n )
Namun, jika pekerjaan tumbuh secara logaritmik dengan ukuran masalah Anda harus menghitung solusi secara akurat. Serialnya akan seperti berikut:
T( n ) =catatan2n +2catatan2(n2) + 4catatan2(n4) + 8catatan2(n8) + . . . .catatan2n kali
Ini akan menjadi jumlah yang cukup kompleks:
T( n ) =catatan2n +∑k = 1catatan2n2kcatatan2(n2k)
Saya akan sementara menunjukkan dan menyederhanakan penjumlahan di atas:m =catatan2n
∑k = 1m2kcatatan2(n2k) ==∑k = 1m2k(catatan2n -k)==catatan2n∑k = 1m2k-∑k = 1mk2k==catatan2n (2m + 1- 2 ) - ( m2m + 1-2m + 1+ 2 )
Di sini saya menggunakan rumus untuk jumlah dari kalkulator aljabar simbolik online Wolfram | Alpha . Maka kita perlu mengganti kembali dengan :∑mk = 1k2kmcatatan2n
T( n ) =catatan2n +2ncatatan2n -2catatan2n -2ncatatan2n +2n-2
= 2 n -catatan2n -2=Θ(n)
QED