[理工] 演算法 時間複雜度 Amotized cost

作者: cschenptt (chen)   2018-12-28 01:26:02
問題:
有一個binary counter
給予某一種操作A
A操作的時間複雜度是O(lgn)
n代表的是
當bit為1時 所在的位置的值
例如 對101做A操作
第一個bit是1 -> n=2^0=1 -> O(lg(1))
第二個bit是0 -> 不理
第三個bit是1 -> n=2^2=4 -> O(lg(4))
所以"一次A操作"時間複雜度是 O(lg(1))+0+O(lg(4))
1. A操作amotized cost
我的方法是對binary counter 從1加到n (每次+1)
也就是1=001做一次A操作,2=010做一次,3=011做一次....n做一次
最後再除n
2. A操作的worst case
我認為worst case應是 0111111...1 也就是n=2的次方-1時
作者: JKLee (J.K.Lee)   2018-12-28 01:41:00
請問n是prob. size嗎? n是指所有的bit數量嗎?
作者: Leaving   2018-12-28 08:47:00
應該是在問計算過程裡面的n吧另外不是很清楚你計算第一行的式子怎麼來的@@如果n指的是counter value, lg(1)前面乘的應該是n, 每次都會跳
作者: JKLee (J.K.Lee)   2018-12-28 10:58:00
可否給原始的題目?

Links booklink

Contact Us: admin [ a t ] ucptt.com