全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 10280|回复: 14
打印 上一主题 下一主题

php比对数值大小

[复制链接]
跳转到指定楼层
#
发表于 2018-1-4 20:42:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
200金钱


比如有一个 a.txt 文件,里面有1w行数值

读取出其中的最大值,和最小值

怎么写效率较高(因为同时请求比对的txt文件有很多,怕服务器处理的时间太长)

求大牛来段代码
15#
发表于 2018-1-4 22:35:21 | 只看该作者
看到楼主标记的正确答案,就知道楼主走错路了。
你这个瓶颈不在改善算法,而是在降低io上。
楼上是个好办法,直接保存算好的最大最小值。
14#
发表于 2018-1-4 21:45:01 | 只看该作者
muyang 发表于 2018-1-4 21:13
这里面有条回复好像可以解决问题,好像根本不用循环遍历什么的,直接用排序,然后取一头一尾,刚才我的表 ...

只求最大最小没必要排序的
排序包括了比较和移动操作,比较次数肯定不会少,还多了移动操作
最佳回答的算法应该是求最大最小最快的算法了
==========个人思路===============
对于单个文件,你文件如果会更新的话,只需要‘’保存‘’当前文件的最大最小值,比如保存在文件的首行
当写入新数据时,只需要加上旧的最大最小值,再次调用该算法更新最大和最小值即可
13#
 楼主| 发表于 2018-1-4 21:33:22 | 只看该作者
panjr 发表于 2018-1-4 21:30
你排序的过程本来就很慢啊 …

我之前想的一条条对比什么的更慢……汗
12#
发表于 2018-1-4 21:30:19 | 只看该作者
muyang 发表于 2018-1-4 21:13
这里面有条回复好像可以解决问题,好像根本不用循环遍历什么的,直接用排序,然后取一头一尾,刚才我的表 ...

你排序的过程本来就很慢啊 …
11#
 楼主| 发表于 2018-1-4 21:13:03 | 只看该作者
本帖最后由 muyang 于 2018-1-4 21:25 编辑
mirfjc 发表于 2018-1-4 20:54
就是优化求最大和最小值的算法?
https://stackoverflow.com/questions/13544476/how-to-find-max-and-min- ...


这里面有条回复好像可以解决问题,好像根本不用循环遍历什么的,直接用排序,然后取一头一尾,刚才我的表达是不是进入误区了……

我去试试文件多了会不会很慢

(试了下,文件多了还是很慢……那什么缓存之类的我也不会用……就选兄弟吧)
10#
发表于 2018-1-4 21:12:14 | 只看该作者
xvbin 发表于 2018-1-4 21:09
如果我说插入数据库,你会不会骂我

那应该也比php算排序快吧
9#
发表于 2018-1-4 21:09:47 | 只看该作者
如果我说插入数据库,你会不会骂我
8#
发表于 2018-1-4 21:08:08 | 只看该作者
muyang 发表于 2018-1-4 20:55
a.txt是会变的,设定大概半小时左右往里写入新的数值

缓存不会用啊,还是菜鸟呢,php也只会写些简单的… ...

半个小时足够缓存了,假设你这里有几百几千个a.txt要同时访问的话。用php写这个很慢的,而且本身是一定要读完整个文件,没啥算法给你加速,就是顺序搜索。
7#
发表于 2018-1-4 21:00:49 | 只看该作者
如果执行次数多,建议用C或者ASM写个CGI, 然后用PHP调用,这样速度最快。
6#
发表于 2018-1-4 20:59:35 | 只看该作者
我记得那个叫什么来着,冒泡算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-13 22:33 , Processed in 0.083257 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表