[問題] 快速找到table的方式?
我有很多筆紀錄,要把他作成類似table的形式
接著依照table的組合來回傳最後的value
表格有點像是這樣
A B C D E F Value
0 0 0 0 0 1 (數字)
0 0 0 0 0 2 (數字)
這個表格相當龐大
資料量將會破兆
唯一的特點是A,B,....F表格中的數字組合將不會重複
而我要做的事情是
假設我傳入
A=0,B=0,C=0,.......E=0,F=1時,他要回傳給我Value值
目前想到的作法是這樣
先將表格中的數字串接起來變成string
(例如第一筆資料改為0-0-0-0-0-1)
接著把他放進unordered_map (我不知道為什麼我的hash_map會失敗,g++ 4.1.2..)
之後查詢只要使用unordered_map查詢即可
想請問各位的事情是
1.unordered_map的複雜度為O(1)嗎?我翻了相關文件,看他的說法是
部份case下會有worst case O(n)...我不太懂為甚麼他會這樣說@@ (boost.org提及)
2.除了我上述的結構外,有沒有其他方法可以快速查詢到Value值
時間複雜度希望為O(1)..因為資料多,O(logn)可能還是太慢
3.同2,其實我有測試過把int轉為string去作查詢,但是速度還是稍慢
主因是int->string也需要花時間,不知道有沒有更好的辦法
感謝各位^~^
--
▊ ◥ thePainter. ◤ ▎
▊ ◣◢ ◣ ◤ ◣ ◤ ▎
▊ ◥◤ ◣ ◤ ◤ ▎ http://www.wretch.cc/blog/myelf
▊ ◥ ◢ ◤ ◤ ◤ ▎ Wretch@BBS -> P_myelf
▊ ◢◤ thePainter. ◣ ▎ φthePainter.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.145.212
推
05/03 16:03, , 1F
05/03 16:03, 1F
→
05/03 16:08, , 2F
05/03 16:08, 2F
→
05/03 16:09, , 3F
05/03 16:09, 3F
推
05/03 17:05, , 4F
05/03 17:05, 4F
→
05/03 17:16, , 5F
05/03 17:16, 5F
推
05/03 17:32, , 6F
05/03 17:32, 6F
→
05/03 17:32, , 7F
05/03 17:32, 7F
推
05/03 17:40, , 8F
05/03 17:40, 8F
→
05/03 17:42, , 9F
05/03 17:42, 9F
→
05/03 17:43, , 10F
05/03 17:43, 10F
→
05/03 17:43, , 11F
05/03 17:43, 11F
→
05/03 17:49, , 12F
05/03 17:49, 12F
→
05/03 17:49, , 13F
05/03 17:49, 13F
→
05/03 17:50, , 14F
05/03 17:50, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章