• 3796阅读
  • 3回复

如何设计如下的数据结构? [复制链接]

上一主题 下一主题
离线icemanpro
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-02
如何设计如下的数据结构?
现有如下数据,
12000      -    16550
1        0.181    
2        0.363    
3        0.544    
4        0.726    
5        0.907    
6        1.089    
7        1.270    
8        1.452    
9        1.633    

16560      -    23990
1        0.181    
2        0.362    
3        0.543    
4        0.724    
5        0.905    
6        1.087    
7        1.268    
8        1.449    
9        1.630    

.......
有几万条记录。

现有两个值,分别为16552 和16563,当值为16552时,查表1,通过该值的个位数“2”查出结果为 0.363  ,而当值为16563,查表2,通过该值的个位数“3”查出结果为0.543

因为记录过多,如何设计上表的数据结构,以便快速查找结果??
[ 此帖被icemanpro在2010-04-02 10:03重新编辑 ]
离线yangfanxing
只看该作者 1楼 发表于: 2010-04-02

通过该值的个位数“1”查出结果为0.181
PHPWind好恶心。。。不想看这种界面。。。
离线steinlee

只看该作者 2楼 发表于: 2010-04-02
struct GroupData
{
     int lower_bound, upper_bound;
     float data[ 9 ];
};

vector< GroupData > data_vec;

search you data through data_vec.
If your lower_bound and upper_bound are sorted, use binary search.
If not, sort them when a lot of queries are needed.

Assume that you have 10000 records. about 10 steps(ln1000) are needed
to reach the group data with binary search
[ 此帖被steinlee在2010-04-02 11:26重新编辑 ]
Looking for remote C/C++ and Qt 兼职
离线yangfanxing
只看该作者 3楼 发表于: 2010-04-02
数据量那么大其实用几个
if
分为更细的段平均下来应该有更好的速度。
vector查找应该是一个比较好的方法~还有QList等。。。
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个