大量如下结构数据:时间戳,ID号,浮点值。
时间戳为至1970年1月1日0点0分0秒的秒数,long形;
ID号也为long形,唯一值。
如何在硬盘中存储这些数据,使得在搜索任一ID的任一时间序列的数据时速度最快?

解决方案 »

  1.   

    知道stl 的 map 吧。
    根据它原理使用树的形式保存数据结构,搜索时速度最快。struct tree
    {
    long id;
    long time;
    double fv;int left;    // (左树)文件偏移
    int right;   // (右树)文件偏移}按id顺序保存,left.id < id < right.id ;
      

  2.   

    放在数据库中,
    以ID作为key存储。
      

  3.   

    用平衡二叉树树上的基本操作在最坏情况下的间复杂度均为O(log2n)
    二分法时间复杂度为O(log2n)
      

  4.   

    先id->hash函数->索引文件吧,索引文件中为排好序的id和时间。索引文件的大小计算成基本上都占内存比例的1/10左右可能比较合适,然后再二分法。
      

  5.   

    不过你们好象没有考虑到读盘的时间耗用。
    ======================================
    文件映射
    CreateFileMapping