[发明专利]动态内存分配中的环形数据管理器及环形数据管理方法有效
申请号: | 201210508891.2 | 申请日: | 2012-12-03 |
公开(公告)号: | CN103064881A | 公开(公告)日: | 2013-04-24 |
发明(设计)人: | 丘锋伟 | 申请(专利权)人: | 深圳市汇川控制技术有限公司;深圳市汇川技术股份有限公司;苏州汇川技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/02 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 陆军 |
地址: | 518000 广东省深圳市福*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 内存 分配 中的 环形 数据 管理器 数据管理 方法 | ||
技术领域
本发明涉及计算机动态内存分配领域,更具体地说,涉及一种动态内存分配中的环形数据管理器及环形数据管理方法。
背景技术
环形数据是对通常情况下首尾相连的双向链表的抽象。它要么是空的,这时候不包含任何元素;要么包含n(n>0)个元素,并拥有唯一的首元素,其编号为0,按顺时针方向其后元素编号分别为1,2,…,n-1。环形数据允许按指定编号访问元素;允许将新的元素插入到指定编号(其后元素编号自动加1);允许将指定编号的元素删除(其后元素编号自动减1);允许将环“左旋”或“右旋”指定的数量单位(即重新编号)等。
环形数据在一些领域的问题求解中具有不可替代的地位和独特的优势,例如在计算机设备的动态内存分配等领域。
已有的实现环形数据管理的方案大体上有两类:一类是常规的使用首尾相连的双向链表(如图1所示);另一类是使用闭环动态数组。当使用双向链表来管理环形数据时,每项操作的定位过程都是通过从编号为0的首元素开始遍历来完成的;对于插入,删除和旋转操作,还涉及少量的修改链接操作。当使用闭环动态数组来管理环形数据时,每项操作的定位过程都建立在高效的数组元素随机访问的基础上;而对于插入和删除操作,则涉及大量代价高昂的元素移动操作。
当出现大规模问题时,无论是采用双向链表,还是采用闭环动态数组,环形数据往往都很难在按指定编号查找、插入、删除元素,以及按指定数量单位将环旋转等各项基本操作上取得令人满意的效率。表1是采用双向链表和闭环动态数组实现的双向链表的各项操作的时间复杂度:(n表示问题规模,i表示操作指定的元素编号,m表示旋转的数量单位)。
表1:环形数据操作对应的时间复杂度
由上表可知,当问题规模达到一定数量级(如n=100000000)时,几乎不再可能利用现有的方案来管理环形数据。
发明内容
本发明要解决的技术问题在于,针对上述环形数据的各项基本操作效率较低的问题,提供一种动态内存分配中的环形数据管理器及环形数据管理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市汇川控制技术有限公司;深圳市汇川技术股份有限公司;苏州汇川技术有限公司,未经深圳市汇川控制技术有限公司;深圳市汇川技术股份有限公司;苏州汇川技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210508891.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:微型串级紫外消解系统
- 下一篇:一种轮胎内衬层米重取样装置