文本文件?那有点儿夸张哟。。每次都要打开这个文件,势必会损耗很多的资源。
不如导入MYSQL里,再加上索引,查寻的时候会压力小点。而且语句也简单,方便维护。

解决方案 »

  1.   

    1、处理这类问题首先考虑的是建立索引文件。因为顺序查找的平均查找次数是n/2,最坏的情况下是n
    而二分查找的平均查找次数是log2(n),但是二分查找需要先对数据排序。因此,建立索引文件就有必要了
    2、如何建立索引文件?
    假定数据文件已存在并且只读,并且已经是排序过的。旧和楼主示例的那样。
    那么只要用fgets函数遍历一次数据文件并记录每次fgets前的位置(用ftell),并以定长方式保存到索引文件即可。检索时先读取索引中的数据文件偏移,再根据偏移读取数据项,根据判断结果决定如何取下一个索引
    假定数据文件非只读或未经排序,那么就稍微麻烦点。一般用树结构组织索引。但是要注意,当向排序数添加已排序数据时,会造成数不均衡。最坏的情况将变为顺序查找。所以需要提供使数均衡的算法
      

  2.   

    数据有问题吧,16怎么判断啊
    楼上的说的对,你应该把它放到数据库中
    直接一条语句就查出来了
    select count(*) from table where 开始区间<数据
    表中只需要一个字段就可以了,结果就是序号
    有了索引的话速度很快的
      

  3.   

    I feel db is faster than file, too.