24h購物| | PChome| 登入
2011-07-25 18:21:16| 人氣890| 回應0 | 上一篇 | 下一篇

Hash table %& 結論

推薦 0 收藏 0 轉貼0 訂閱站台

簡單的Hash, 就只是拿一個數字N%M, 存在 Hash[N%M], 發生碰撞, 就鏈結
那麼之前可能會看過 & 的運算, 會比 % 快 ? 我也不知道我在哪裡看到過了
判斷偶數, 只要用 N&1 來做判斷, 真的會比較快, 不過速度到底差多少 ?
我們拿一題 a064. SPOJ 4580.ABCDEF 來做測試
Hash 若要使用 N&M, 則必須 M = 2^N - 1 (也就是 1111111...)

N%524288
*** 第 1 點 (10%):AC (256ms, 10MB)
*** 第 2 點 (10%):AC (20ms, 3.3MB)
*** 第 3 點 (10%):AC (32ms, 2.3MB)
*** 第 4 點 (10%):AC (36ms, 2.6MB)
*** 第 5 點 (10%):AC (8ms, 2.3MB)
*** 第 6 點 (10%):AC (32ms, 2.3MB)
*** 第 7 點 (10%):AC (40ms, 2.3MB)
*** 第 8 點 (10%):AC (32ms, 2.4MB)
*** 第 9 點 (10%):AC (36ms, 2.4MB)
*** 第 10 點 (10%):AC (252ms, 10MB)

N&524287
*** 第 1 點 (10%):AC (248ms, 10MB)
*** 第 2 點 (10%):AC (20ms, 3.3MB)
*** 第 3 點 (10%):AC (24ms, 2.3MB)
*** 第 4 點 (10%):AC (32ms, 2.6MB)
*** 第 5 點 (10%):AC (8ms, 2.3MB)
*** 第 6 點 (10%):AC (28ms, 2.3MB)
*** 第 7 點 (10%):AC (24ms, 2.3MB)
*** 第 8 點 (10%):AC (28ms, 2.5MB)
*** 第 9 點 (10%):AC (28ms, 2.4MB)
*** 第 10 點 (10%):AC (248ms, 10MB)

如以上看到的, 速度確實是 & 比較快, 但是好像也沒有差多少

台長: Morris
人氣(890) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 解題技巧 |
此分類下一篇:[問題] 指標
此分類上一篇:[技巧] 兩陣列元素交換 不是O(n) 是 O(1)

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文