社区
基础编程
帖子详情
最后50分,请教一个算法
pwtitle
2006-08-03 12:56:13
一个文本文件记录的格式如下:
1 5
6 10
11 11
15 15
17 25
m n
.....
规律为前一个数字m<=后一个数字n,该数据量非常大,估计有100W条。
现在的情况是有一个任意数字x,要求判断他落在第几个m,n区间,并返回文件所在行数。
该应用为web应用,且同时请求量非常大,假设为同时1000次查询。(每次x都不一样)。那么请问各位高手,有什么算法或方法来解决这个问题呢?
...全文
118
8
打赏
收藏
最后50分,请教一个算法
一个文本文件记录的格式如下: 1 5 6 10 11 11 15 15 17 25 m n ..... 规律为前一个数字m<=后一个数字n,该数据量非常大,估计有100W条。 现在的情况是有一个任意数字x,要求判断他落在第几个m,n区间,并返回文件所在行数。 该应用为web应用,且同时请求量非常大,假设为同时1000次查询。(每次x都不一样)。那么请问各位高手,有什么算法或方法来解决这个问题呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
颓废的老猫
2006-08-03
打赏
举报
回复
学习
不过我觉得用数据库可能更方便一点
laochake
2006-08-03
打赏
举报
回复
是否有当前行的m大于等于前一行的n,如果成立的话,可以考虑分割成多个文件存储
chszs
2006-08-03
打赏
举报
回复
笔误,“32块,”见上面。
chszs
2006-08-03
打赏
举报
回复
顺序查找和二分查找都不好,因为“同时请求量非常大”,我觉得可以采用分块查找。
把m分成34块,因为你“假设为同时1000次查询”32*32=1024,只需要两级的查找,每级又可采用二分查找,这样速度就会很快了。
zeroleonhart
2006-08-03
打赏
举报
回复
I feel db is faster than file, too.
ckc
2006-08-03
打赏
举报
回复
数据有问题吧,16怎么判断啊
楼上的说的对,你应该把它放到数据库中
直接一条语句就查出来了
select count(*) from table where 开始区间<数据
表中只需要一个字段就可以了,结果就是序号
有了索引的话速度很快的
xuzuning
2006-08-03
打赏
举报
回复
1、处理这类问题首先考虑的是建立索引文件。因为顺序查找的平均查找次数是n/2,最坏的情况下是n
而二分查找的平均查找次数是log2(n),但是二分查找需要先对数据排序。因此,建立索引文件就有必要了
2、如何建立索引文件?
假定数据文件已存在并且只读,并且已经是排序过的。旧和楼主示例的那样。
那么只要用fgets函数遍历一次数据文件并记录每次fgets前的位置(用ftell),并以定长方式保存到索引文件即可。检索时先读取索引中的数据文件偏移,再根据偏移读取数据项,根据判断结果决定如何取下一个索引
假定数据文件非只读或未经排序,那么就稍微麻烦点。一般用树结构组织索引。但是要注意,当向排序数添加已排序数据时,会造成数不均衡。最坏的情况将变为顺序查找。所以需要提供使数均衡的算法
keaizhong
2006-08-03
打赏
举报
回复
文本文件?那有点儿夸张哟。。每次都要打开这个文件,势必会损耗很多的资源。
不如导入MYSQL里,再加上索引,查寻的时候会压力小点。而且语句也简单,方便维护。
一个
牛人提供的GIS源码(很好)
一个
牛人提供的GIS源码(很好 下面文字非本人所写,文件提到的下载的东西我全部放包里了。
最后
的礼物:校园多媒体系统和校园WEBGIS系统 为什么说是
最后
的礼物,大概是因为我突然想这个blog不更新了。为什么呢?...
zhenghua.zip_模式识别(视觉/语音等)_Visual_C++_
这是我做课程设计时编写的
算法
,当时我做的是车牌识别,做了很久都没有头绪,
最后
不得已向老师
请教
。
图解数据结构与
算法
另外,大厂面试数据结构和
算法
也是我们绕不过去的
一个
门槛。这部
分
恰好又不是突击能够解决的知识储备,所以很有必要系统地学习一下数据结构和
算法
了 【推荐您学习这门课程的原因】 1、图解数据结构与
算法
:拒绝抽象...
请教
一个
五子棋电脑
算法
最近看一些五子棋的经典
算法
,发现以前自己写的
算法
算是最低效的了,从来没有想到用
最后
一个
落盘的棋子为基准点来判断当前形势,实在是让我茅塞顿开,很佩服这些作者。 小弟是个新人,平时很喜欢javaeye上的一些...
算法
竞赛学习指南(
分
阶段)
算法
竞赛学习指南(
分
阶段)
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章