About me
My Name is Ali Jaya Meilio and this is my story.
Labels
- article (12)
- bitcoin (1)
- blog (9)
- book (1)
- competitive programming (11)
- cpp (8)
- craft (9)
- film (3)
- filmmaking (5)
- game (3)
- gamedev (4)
- haxe (2)
- javascript (2)
- jquery (2)
- life (6)
- movie (3)
- music video (1)
- pascal (7)
- photo manipulation (1)
- programming (17)
- quick (2)
- review (2)
- short story (2)
- story (2)
- tokilc (3)
- walkthrough (3)
Itu fibonacci yang ngga dimemo kompleksitasnya eksponensial. Di setiap fib(x), dia kan bercabang ke fib(x-1) dan fib(x-2), kedalamannya maksimal N. Jadi kalo mau kasar, sebut aja kompleksitasnya O(2^N). CMIIW.
BalasHapusoh iya... yang paling kasarnya segitu yak... hum hum hum... *diupdate dulu yak blog nya... thanks kak XD
BalasHapusnanti diubah deh ==a... aku lagi gak mood ngubah2 gitu ==a... inet lagi lambet ==a... mau ngubah dikit aja hampir setengah jam ==a...
BalasHapusKak, bedanya yang dibawah sama yan di atas apa kak? (Yang DP sama Greedy) Perasaan buat yang fibonacci cuma diganti "ret" jadi memo[n] doang.. kayaknya setiap memo[n] cuma dipake sekali deh..
BalasHapuskalau ret itu lokal, kalau memo[n] itu global... jadi misalkan memo[n] ternyata udah pernah diisi / dikerjain sebelumnya, dia bakal gak usah ngerekursi lagi, dia langsung return...
HapusItu bedanya yang fibonacci DP sama Greedy apa kak? itu cuma ngganti ret jadi memo[n] doang.. kayaknya setiap memo[n] juga cuma dipake sekali kok.. sama aja kayak ret.. tetep aja DP nya rekurs ke 2 fungsi terus menerus.. thus jadinya O(2^n)
BalasHapussori baru bales... :-?...
Hapushmmm maksudnya beda fibonacci DP sama Greedy? aku blom ngebahas greedy seh di post ini... tapi intinya bisa dibilang kadang2 soal DP bisa di Greedy, tapi gak selalu, dan kalau bisa, artinya kompleksitasnya makin kecil lagi.
hmmm gak jadi O(2^N), karena gini...
misalnya f(4) deh...
ini contoh tanpa DP
- f(4) = f(3) + f(2)
-- f(3) = f(2) + f(1)
--- f(2) = f(1) + f(0)
---+ f(1) = 1
---+ f(0) = 0
--+ f(2) = 1 + 0 = 1
--+ f(1) = 1
-+ f(3) = 1 + 1 = 2
-- f(2) = f(1) + f(0)
--+ f(1) = 1
--+ f(0) = 0
-+ f(2) = 1 + 0 = 1
+ f(4) = 2 + 1 = 3
itu tanda di depan untuk nunjukin seberapa dalem, kalau ada +, itu artinya nilainya dah di evaluate...
ini kalau pake DP...
- f(4) = f(3) + f(2)
-- f(3) = f(2) + f(1)
--- f(2) = f(1) + f(0)
---+ f(1) = 1
---+ f(0) = 0
--+ f(2) = 1 + 0 = 1 --> f(2) udah ketauan 1
--+ f(1) = 1
-+ f(3) = 1 + 1 = 2
-+ f(2) = 1 --> gak usah itung lagi f(1) + f(0) karena dah tau f(2) = 1
+ f(4) = 2 + 1 = 3
keliatan kan dimana bedanya :-?...
jadi tiap fungsi dia gak selalu merekursi ke bawahnya lagi, dia cuman ngerekursi kalau fungsi dengan argument tertentu belum pernah dijalanin, kalau udah, dia langsung return (langsung jadi base bukan rekurens lagi)