Re: [問題] 兩筆資料的相互搜尋

看板C_and_CPP (C/C++)作者 (Alien)時間16年前 (2009/03/23 13:05), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《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

03/23 13:51, , 1F
可能硬碟空間不夠之類的
03/23 13:51, 1F

03/23 13:52, , 2F
硬碟空間不夠不容易... 才幾萬筆, 幾億才有可能不夠
03/23 13:52, 2F

03/23 13:53, , 3F
幾億其實也不多了 XD
03/23 13:53, 3F

03/23 14:20, , 4F
況且只存個名字就夠了, 額外花的空間其實很少了吧
03/23 14:20, 4F

03/23 17:48, , 5F
分群吧.. 找找 資料結構 看看吧
03/23 17:48, 5F

03/23 17:56, , 6F
分群該不會比用 map (RB-tree) 好多少吧?
03/23 17:56, 6F

03/23 19:15, , 7F
感謝各位解答...
03/23 19:15, 7F

03/23 20:45, , 8F
SQLite<- 作弊, 或是 programming pearl也有類似的題目
03/23 20:45, 8F
文章代碼(AID): #19nnX_3g (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19nnX_3g (C_and_CPP)