免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9258 | 回复: 16
打印 上一主题 下一主题

[算法] 关键字查找算法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-12 20:04 |只看该作者 |倒序浏览
现在有一批中等数量级(十万级)的数据,格式如下:

ID                    NameInfo
0                  北京市人民政府

1                  国家安全局

2                 上海市人民政府

3                 八达岭长城
.......               ................


现在要对此文件建立关键字索引。(例如:输入 国家,可以快速的找到  国家安全局  输入 人民 可以找到 北京市人民政府 和 上海市人民政府);
要求建立的索引结构所占用的空间相对最少,但是关键字查找速度要很快。
现在考虑使用 Trie树,但是Trie树太浪费空间了。
不知大家有没有好的算法。尽情讨论!!!

[ 本帖最后由 kunis 于 2008-8-12 21:34 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-12 20:53 |只看该作者

回复 #1 kunis 的帖子

十万级,数据库轻松搞定

论坛徽章:
0
3 [报告]
发表于 2008-08-12 21:09 |只看该作者
关键字一共有多少个?可以考虑用哈希

ps,用开放寻址法解决冲突

[ 本帖最后由 cugb_cat 于 2008-8-12 21:10 编辑 ]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
4 [报告]
发表于 2008-08-12 21:09 |只看该作者
有几种吧:
1.hash法
2.利用xml

论坛徽章:
0
5 [报告]
发表于 2008-08-12 21:13 |只看该作者
原帖由 newIT666 于 2008-8-12 20:53 发表
十万级,数据库轻松搞定


同意。

论坛徽章:
0
6 [报告]
发表于 2008-08-12 21:19 |只看该作者
可以选择hash法
这样可以节省很多空间

论坛徽章:
0
7 [报告]
发表于 2008-08-12 21:26 |只看该作者

回复 #2 newIT666 的帖子

我也想用数据库,可没有啊!一个内存只有10几M,主频只有200多MHZ的系统。跑不起来DBMS啊

论坛徽章:
0
8 [报告]
发表于 2008-08-12 21:29 |只看该作者
原帖由 chenzhanyiczy 于 2008-8-12 21:09 发表
有几种吧:
1.hash法
2.利用xml

XML? 一个XML引擎要占用多少空间啊,内存不足啊!

论坛徽章:
0
9 [报告]
发表于 2008-08-12 21:31 |只看该作者
原帖由 cugb_cat 于 2008-8-12 21:09 发表
关键字一共有多少个?可以考虑用哈希

ps,用开放寻址法解决冲突

关键字有40W


你的意思是 构造一个hash函数

HashFunc(NameInfo)=ID?
其实我现在并不关注这个ID, 我是想当用户输入一个关键字的时候,我能找到所有包含该关键字的NameInfo,然后再考虑使用ID这个字段

[ 本帖最后由 kunis 于 2008-8-12 21:36 编辑 ]

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
10 [报告]
发表于 2008-08-12 21:41 |只看该作者
假如你觉得tree树法都耗内存,那么hash法也将一样
至于xml,有专门的xml函数库,google 一下,free 的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP