[发明专利]用于嵌入式系统的数据信息存储及快速查询方法在审
申请号: | 201410695272.8 | 申请日: | 2014-11-27 |
公开(公告)号: | CN104462280A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 陈兴;陈瑜;曾松峰;申存海 | 申请(专利权)人: | 国网上海市电力公司;上海思敦信息科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海信好专利代理事务所(普通合伙) 31249 | 代理人: | 张妍;包姝晴 |
地址: | 200002 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 嵌入式 系统 数据 信息 存储 快速 查询 方法 | ||
技术领域
本发明涉及一种用于嵌入式系统的数据信息存储及快速查询方法。
背景技术
查找的目的在于从一些数据中寻找一个特定的值,对于查询方法的要求是具有更高的效率与更方便的操作。在范围较小的时候,无论采取什么方法查找,所花费的时间都相差无几,在这种情况下,算法上简单易行,且对存储格式要求较低的线性查找无疑就可以满足要求。但当所要查找的范围达到了一定程度时,查询方法在耗时,系统处理能力,系统资源消耗问题就逐渐突显,当数据量更大时在嵌入式系统上很难处理。
常用的查询方法,包括:
线性查找:线性查找又叫顺序查找,是从数组中第一笔数据开始进行查找比较,如果找到所需的数值则返回该值或该位置,如果没有找到则往下一笔数据进行查找比较,直到查找到最后一笔数据为止。线性查找在思维上简单易行,代码容易实现,是处理少量数据时,很好的一种选择,但是由于其平均状况的时间复杂度为O(n),随着数据量的增大其效率就明显降低,这时就应该选用其他的方法。
折半查找: 折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果x<a[n/2],则只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则只要在数组a的右半部继续搜索x。二分搜索法的应用极其广泛,而且它的思想易于理解,但是数据量大到一定程度时,嵌入式系统需要大量系统资源,或者需要大量的时间来进行排序。
折半查找的变形——Fibonacci查找和插补查找:
与折半查找法类似,Fibonacci查找和插补查找都是将数据查找范围切成两半,直至能够确定具体的位置或所查找不在范围之内。但是它们在效率和应用范围上也有一定的区别。
折半查找运用除法运算来减少查找范围,而Fibonacci查找法则利用了Fibonacci数列建立相应的树状结构,在缩小范围的过程中仅用到加减法。在计算机处理运算指令中,加减运算的效率高于乘除运算,所以Fibonacci查找法的效率也会优于折半查找。然而对于不平均分布的数据,其效率并不好,甚至在最坏的状况下,时间复杂度达到了线性查找相同。
对于嵌入式系统来言,复杂而又占用系统资源的查找算法,根本无法实现;但是在数据范围很大的时候,用简单方法来查找又需要用较长时间,交互性差。
发明内容
本发明目的在于提供一种用于嵌入式系统的数据信息存储及快速查询方法,用Flash存储空间地址作为索引,提供一个较大的索引区域使索引包含所有的信息ID的个数,索引的空间用来存放数据信息的地址,能快速得到信息存放的地址从而得到信息的内容。数据信息以连续方式存放减小空间的占用,既考虑了快速查询又兼顾了空间的利用。
为了达到上述目的,本发明的技术方案是提供一种用于嵌入式系统的数据信息存储及快速查询方法,在嵌入式系统的Flash中,包含:
数据信息区,其中连续存放有多个数据信息,每个数据信息保存在对应的信息地址下;
索引区,其中设有多个索引信息,每个索引信息对应的索引地址下,存放有与该索引信息对应的数据信息的信息地址;
其中,每个数据信息的序号n,从1到数据信息的总数中取值;每个索引信息的序号N,从1到索引信息的总数中取值;设每个数据信息对应的信息ID的数值为N-1;
查询时,从索引区中由信息ID计算获得的索引地址下,得到存放的数据信息的信息地址后,在数据信息区中获得该信息地址下存放的数据信息。
优选地,所述索引区在Flash中所需空间的大小,通过计算索引信息的总数与地址长度的乘积来获得;所述地址长度与任意一个信息地址在索引区中所需的存储空间相对应;
所述数据信息区在Flash中所需空间的大小,通过计算数据信息的总数与每条信息的数据长度的乘积来获得。
优选地,所述地址长度为4字节。
优选地,进行添加信息的操作时,包含以下步骤:
在数据信息区的首地址上,增加数据信息区当前位置与数据长度乘积的数值,得到新增加数据信息的信息地址;设所述数据信息区当前位置的数值为n-1;
在索引区的首地址上,增加信息ID与地址长度乘积的数值,得到相应的索引地址,并在该索引地址下写入新增加数据信息的信息地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网上海市电力公司;上海思敦信息科技有限公司,未经国网上海市电力公司;上海思敦信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410695272.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于弹幕媒体的搜索处理方法和系统
- 下一篇:一种数据读取的方法、装置及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置