社区
基础编程
帖子详情
最后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都不一样)。那么请问各位高手,有什么算法或方法来解决这个问题呢?
...全文
150
8
打赏
收藏
最后50分,请教一个算法
一个文本文件记录的格式如下: 1 5 6 10 11 11 15 15 17 25 m n ..... 规律为前一个数字m<=后一个数字n,该数据量非常大,估计有100W条。 现在的情况是有一个任意数字x,要求判断他落在第几个m,n区间,并返回文件所在行数。 该应用为web应用,且同时请求量非常大,假设为同时1000次查询。(每次x都不一样)。那么请问各位高手,有什么算法或方法来解决这个问题呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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不更新了。为什么呢?...
请教
一个
五子棋电脑
算法
最近看一些五子棋的经典
算法
,发现以前自己写的
算法
算是最低效的了,从来没有想到用
最后
一个
落盘的棋子为基准点来判断当前形势,实在是让我茅塞顿开,很佩服这些作者。 小弟是个新人,平时很喜欢javaeye上的一些...
算法
竞赛学习指南(
分
阶段)
算法
竞赛学习指南(
分
阶段)
关于骰子的
一个
小
算法
今天,遇到
一个
算法
的问题,让我头疼一阵,其实也不是一道非常难的题,但奈何我怎么求都没有求出来,
最后
只有
请教
高人,才得以解决。 需求:三个骰子,他们的和为
一个
定值,知道骰子的人,应该很快得出这个值的取值...
大神的
算法
学习之路
严格来说,本文题目应该是我的数据结构和
算法
学习之路,但这个写法实在太绕口——况且CS中的
算法
往往暗指数据结构和
算法
(例如
算法
导论指的实际上是数据结构和
算法
导论),所以我认为本文题目是合理的。 原文链接:...
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章