+ -
当前位置:首页 → 问答吧 → 如何存储这些数据?如何查找能提高效率?一个算法问题

如何存储这些数据?如何查找能提高效率?一个算法问题

时间:2011-08-22

来源:互联网

数据原形是这样的:每发生一种事件产生一种事件代码 事件代码由3部分组成机号(1-32),路号(1-32),编码(1-252),最多发生1000个事件(只存储最先发生的1000个事件,只有1000个存储空间)。要求查找事件时,会提供 机号 路号 和编号
问题是:
1:当查找发生的事件时,那种方式效率比较高?
2:如何存储这些事件?
3,最好给出算法说明

作者: cyp2008   发布时间: 2011-08-22

你的问题还是有点模糊,并且,你只是给出数据的描述,并没给出实际例子的数据,比如,按照你的描述
这个事件12345到底是12-3-45还是1-23-45你都没给出。
还有,‘要求查找事件时,会提供 机号 路号 和编号’这句话怎么理解,是提供按照‘机号,路号,编号’这三种关键字去查找一个事件呢?还是,查找时,要返回这三项数据,都没讲明白,你的结帖率竟然是0%,呵呵

作者: yby4769250   发布时间: 2011-08-22

谢谢你的回答,这是我第一次提问。不好意思啊 还没有结贴过呢

这个事件我这样说吧 这个事件查找时 要通过 机号 路号 编号 来查找一个事件
这个事件有这样几个部分组成 机号 路号 编号 事件类型 
也可以这样说 一共有32台机器机号(1-32) 每天机器有32个回路(1-32路号) 每个回路有252个编号的器件(1-252)。现在有一个中央处理单元 要处理32*32*252个器件发生的事情。然后显示出来,只不过目前只处理最先发生的1000个事件(可能是任意1000个器件发出的)

作者: cyp2008   发布时间: 2011-08-22

排序后,查找效率最高.

三部分, 用8+8+8 bits存储就够了. 1000个事件, 就是3000Byte 少于800个的uint32 就够了.

内存占用不是很厉害, 可以直接放在内存中处理.

作者: zmlovelx   发布时间: 2011-08-22