[問題] 效率的問題~!?

看板Programming作者時間16年前 (2009/06/25 03:01), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串3/4 (看更多)
我最近有空閒 所以在做ACM的題目 其中有需要做 n /= 2的動作 我以為改成 n >>= 1 直接做shift會比較快 但是事實上卻沒有 另外要做 n % 2 == 0 的判斷 我改成 (n & 00000000000000000001) == 00000000000000000000 但是ACM跑出來的時間並沒有縮短 我一直以為計算改成位元組的 shift 或是 and 跟 or 會比較快 請問我這些觀念是不是錯誤的!!?? -- (好痛>"<)~ ( ̄ε(# ̄)☆ o# O╮o( ̄皿 ̄o) ~(看我的殺球~~!!!!) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.141.41

06/19 14:04, , 1F
因為compiler編譯成組語的時候就是這麼做的
06/19 14:04, 1F

06/19 14:05, , 2F
他們發現除二的次方被的時候本來就會用shif
06/19 14:05, 2F

06/19 14:05, , 3F
而不是用div
06/19 14:05, 3F

06/20 06:53, , 4F
差異很微小 ACM online judge不一測得出來
06/20 06:53, 4F

06/20 09:36, , 5F
快慢有些是IO的關係,存起來一並輸出較快
06/20 09:36, 5F

06/20 12:32, , 6F
n & 1 == 0 就可以了,不用自己補 0...
06/20 12:32, 6F

06/20 20:04, , 7F
開頭補0,是8進位的表示法
06/20 20:04, 7F

06/28 14:16, , 8F
妳知道 P4 上面 add 比 shift 慢 12 倍嗎
06/28 14:16, 8F

06/28 14:17, , 9F
阿哩 寫相反了
06/28 14:17, 9F
文章代碼(AID): #1AGkXr00 (Programming)
文章代碼(AID): #1AGkXr00 (Programming)