免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ohmylove
打印 上一主题 下一主题

大家帮忙想一想: [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-02-28 13:40 |只看该作者

大家帮忙想一想:

在内存里搜要1分钟?
没弄错吧
我说的是让你读进内存来操作阿

如果仅仅是为了在文件中搜索到你要找的记录并读进来的话
如果你没有办法改变文件的存储方式
那么除了线性搜索也没什么好办法了,线性搜索的复杂度是O(n)
如果你读进来还要做很多其他操作,会频繁的查找的话
不妨考虑AVL树或者HASH之类的办法
希望对你有帮助

论坛徽章:
0
12 [报告]
发表于 2003-02-28 14:37 |只看该作者

大家帮忙想一想:

如果你可以改变文件的存储方式那最好了
你可以建个索引文件,里面记录每个数据块的关键字和对应的
该数据块在数据文件中的偏移量
你要找一个特定的数据块的时候就可以读进索引文件
从索引文件中找到该数据块在数据文件中的偏移量
然后直接从数据文件里把该数据块读进来
这是一般的对付海量数据文件的办法

如你所说300m一个文件,1k一个数据块
那索引文件里就只有300k条记录
假设每条索引文件的记录有16个字节
整个索引文件就有4.8m
那么你检索的话就只用读入4.8m到内存里就够了
那光是在io上节省的时间就很可观了

如果像stroustrup  说的那样有300g的话
那可以考虑给索引再建索引,即二级索引
如果还不成就三级索引
btw:UNIX下最大的文件也就2.1g多

论坛徽章:
0
13 [报告]
发表于 2003-02-28 14:47 |只看该作者

大家帮忙想一想:

原帖由 "unicorns" 发表:
如果你可以改变文件的存储方式那最好了
你可以建个索引文件,里面记录每个数据块的关键字和对应的
该数据块在数据文件中的偏移量
你要找一个特定的数据块的时候就可以读进索引文件
从索引文件中找到该数据块在数..........

WIN下是可以很大很大的,2**64那么大,因为WIN用的是64位地址的文件.

论坛徽章:
0
14 [报告]
发表于 2003-02-28 14:56 |只看该作者

大家帮忙想一想:

呵呵,我说的UNIX下最大的文件2.1g多其实不准确
那要看你用什么文件系统了
ohmylove 该用户已被删除
15 [报告]
发表于 2003-02-28 15:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
16 [报告]
发表于 2003-02-28 15:36 |只看该作者

大家帮忙想一想:

我费了 这么半天劲写的东西
你看都没认真看就来开口乱说
faint!
谁在和你说比较次数的问题了!!
ohmylove 该用户已被删除
17 [报告]
发表于 2003-02-28 15:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
18 [报告]
发表于 2003-02-28 15:45 |只看该作者

大家帮忙想一想:

请大家注意自己的情绪!!!

论坛徽章:
0
19 [报告]
发表于 2003-02-28 15:45 |只看该作者

大家帮忙想一想:

哈哈!
你去满大街问问赚贴子数有赚的这么辛苦的吗
你看看我的注册日期再看看我的帖子数就知道我是不是再赚帖子了

你自己需求没写清楚,我巴巴的跑来回答
也算是我倒霉!

晦气!!

不过我现在总算明白你的意思了
这个问题对我来说太难了 ,您去请教其他人吧
对不起了,我就再赚这一篇帖子
以后你再让我赚,我也不赚了
呵呵
ohmylove 该用户已被删除
20 [报告]
发表于 2003-02-28 15:53 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP