社区
基础编程
帖子详情
最后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都不一样)。那么请问各位高手,有什么算法或方法来解决这个问题呢?
...全文
155
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里,再加上索引,查寻的时候会压力小点。而且语句也简单,方便维护。
学堂在线C语言程序设计2016春季课程助教维护项目_包含CppTech每周技术文章拓展视野_DBF存放有趣程序_FAQ定期总结讨论区精华_Handout提供课程讲义markdo.zip
学堂在线C语言程序设计2016春季课程助教维护项目_包含CppTech每周技术文章拓展视野_DBF存放有趣程序_FAQ定期总结讨论区精华_Handout提供课程讲义markdo.zip
基于Java_Swing和AWT图形界面库开发的交互式图片拼图游戏项目_支持多难度级别选择与背景音乐播放的益智类桌面应用程序_通过鼠标点击操作实现拼图块的移动与自动补位机制_旨在为.zip
基于Java_Swing和AWT图形界面库开发的交互式图片拼图游戏项目_支持多难度级别选择与背景音乐播放的益智类桌面应用程序_通过鼠标点击操作实现拼图块的移动与自动补位机制_旨在为.zip
FS32K144、s32k1引脚定义64、100、144、176脚都有
车用mcu,找了一圈网上少。找到放
一个
【汽车电子通信】基于DDS与Ethernet的SOA架构仿真测试:SOME/IP与gPTP协议集成
分
析系统设计
内容概要:本文介绍了DDS(Data Distribution Service)、SOME/IP、gPTP等汽车电子通信协议的基本原理及其在车载网络中的应用,重点阐述了DDS的
分
布式数据通信机制、SOME/IP在面向服务架构(SOA)中的实现方式以及gPTP在时间同步中的作用。同时,文档展示了如何利用CANoe工具对这些协议进行仿真、
分
析与测试,涵盖从IDL建模、QoS配置到实际网络行为验证的完整流程,并提供了在AUTOSAR环境下的集成方案和技术支持能力。; 适合人群:从事汽车电子系统开发、车载网络架构设计及相关测试工作的工程师,具备一定嵌入式系统或通信协议基础的研发人员;; 使用场景及目标:①理解DDS与SOME/IP在车载SOA架构中的差异与应用场景;②掌握基于CANoe平台进行DDS、SOME/IP及gPTP协议仿真与测试的方法;③实现高精度时间同步系统(如ADAS)的设计与验证; 阅读建议:此资料适用于实际项目开发参考,建议结合CANoe、vTESTstudio等工具实践操作,重点关注IDL/vCDL建模、QoS参数配置及协议交互时序
分
析,以深入理解各协议在复杂车载环境中的行为特性。
基于Spring框架与ELK技术栈构建的
分
布式系统可观测性工具_统一标准与工具集_生成收集处理导出追踪指标日志数据_实现全面系统监控与性能
分
析_Spring_ELK_
分
布式追踪_指.zip
基于Spring框架与ELK技术栈构建的
分
布式系统可观测性工具_统一标准与工具集_生成收集处理导出追踪指标日志数据_实现全面系统监控与性能
分
析_Spring_ELK_
分
布式追踪_指.zip
基础编程
21,890
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章