作者adrianshum (Alien)
看板C_and_CPP
標題Re: [問題] 兩筆資料的相互搜尋
時間Mon Mar 23 13:05:02 2009
※ 引述《solasga (密碼呢)》之銘言:
: 目前我有兩大筆資料
: name1陣列是約有5萬多個英文名字 (之後還會繼續增加)
: name2陣列約有1萬多個英文名字 (之後也是會繼續再增加)
: 目標是想要找到兩陣列中有相同的名字
: 如果使用map的話
: 最少也是要使用1萬次
: 花費時間大約1秒多 時間還是太久(要比對這種名字約1萬多次...)
: 不知道有沒有什麼其他的函式可以加速比對的嗎??
: 感謝
如果這是蠻常用的功能, 為不麼不乾脆把兩邊都出現
的名字另外存起?
通通都用 map 之類存好, 然後在 list 1 新增的時候
檢查 list 2 (反之亦然), 有相同就存於 common list.
以後要找出兩邊都有的 entry, 就直接從 common list
取出就好. 這麼最多是第一次建立 common list 時要
花一點時間, 往後就快很多了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
→ Ebergies:可能硬碟空間不夠之類的 03/23 13:51
推 ledia:硬碟空間不夠不容易... 才幾萬筆, 幾億才有可能不夠 03/23 13:52
→ ledia:幾億其實也不多了 XD 03/23 13:53
→ adrianshum:況且只存個名字就夠了, 額外花的空間其實很少了吧 03/23 14:20
推 wupojung:分群吧.. 找找 資料結構 看看吧 03/23 17:48
→ adrianshum:分群該不會比用 map (RB-tree) 好多少吧? 03/23 17:56
→ solasga:感謝各位解答... 03/23 19:15
推 softwind:SQLite<- 作弊, 或是 programming pearl也有類似的題目 03/23 20:45