作者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
1F:→ Ebergies:可能硬碟空间不够之类的 03/23 13:51
2F:推 ledia:硬碟空间不够不容易... 才几万笔, 几亿才有可能不够 03/23 13:52
3F:→ ledia:几亿其实也不多了 XD 03/23 13:53
4F:→ adrianshum:况且只存个名字就够了, 额外花的空间其实很少了吧 03/23 14:20
5F:推 wupojung:分群吧.. 找找 资料结构 看看吧 03/23 17:48
6F:→ adrianshum:分群该不会比用 map (RB-tree) 好多少吧? 03/23 17:56
7F:→ solasga:感谢各位解答... 03/23 19:15
8F:推 softwind:SQLite<- 作弊, 或是 programming pearl也有类似的题目 03/23 20:45