CN106649790A - 一种多层链接分离的skiplist构造方法及*** - Google Patents
一种多层链接分离的skiplist构造方法及*** Download PDFInfo
- Publication number
- CN106649790A CN106649790A CN201611236173.9A CN201611236173A CN106649790A CN 106649790 A CN106649790 A CN 106649790A CN 201611236173 A CN201611236173 A CN 201611236173A CN 106649790 A CN106649790 A CN 106649790A
- Authority
- CN
- China
- Prior art keywords
- scanning
- skiplist
- node
- scan
- pedometer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种多层链接分离的skiplist构造方法及***,其中方法的实现包括:在查找元素时,按固定的跨度调整节点高度,完善跳跃表数据结构,然后将元素封装成节点***到跳跃表的底层有序链表中。将***操作时的多层有序链表链接开销分摊到查找操作中各个有序单链表***链接,相比随机构造方案,仅在各层查找过程中对符合跨度要求的节点增加在单链表的链接操作,单次链接操作的时间开销为O(1),而***操作只需将元素***到底层有序单链表中,降低了多层链表间的耦合关系,提高跳跃表的并发***性能;此外,相比确定性构造方案,***元素后无需为了完善跳跃表而重构整个数据结构,从而可以避免重构导致的跳跃表不可用的情形发生。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种多层链接分离的skiplist构造方法及***。
背景技术
跳跃表skiplist是一种随机化的数据结构,基于并联的有序链表,其搜索的时间复杂度为O(logn),n为skiplist中的元素个数。skiplist以其实现简单、快速高效而被广泛应用于键值存储***或内存数据库***,如redis、leveldb等。
相比有序单链表,skiplist查找效率随skiplist容量呈对数增长,性能远超过有序单链表的线性扩展性能,虽然典型的树结构,如二叉有序树(Binary Search Tree,BST)亦可达到skiplist的查找、***效率,但是维持树的平衡需要进行复杂的操作,如平衡二叉树(Balanced Binary Tree,AVL)、红黑树(Red Black Tree,RBT)的***操作需要定位元素位置、***元素、以及旋转,其中后续的旋转操作用于保证树的平衡,不至于树的结构退化成有序单链表,由于该操作视***元素的位置来决定如何调整链接关系导致树的结构的分析以及维持变得非常复杂。
skiplist构造的典型实现包括初始化和***两个阶段,其中,在skiplist初始化阶段定义skiplist的高度阈值,确定节点高度增长的概率因子p以及构造头节点;在***阶段,按照特定的方案将元素封装成节点按元素非递减的顺序***到skiplist,同时保证从底层到顶层各层链表的节点数目按照概率因子p等比递减。
现有的skiplist构造方案主要包括两种,其一,随机构造方案,即每次随机生成节点高度,然后将节点***链表,由于待插节点的高度及大小在***之前是随机的,故这种情况会导致构造的skiplist相邻层的节点分布不能严格符合概率比,存在位于高层链表的节点极其稀少,与低层的概率比严重偏离概率因子p的最坏情形,同时无法保证各层链表中节点的跨度均匀;其二,确定性构造方案,每次***都根据固定算法对整个结构进行重构,从而保证skiplist结构均匀,以及高度和跨度最优化,但是重构需要较长时间而且过程中整个数据结构被锁住,导致并行性能差。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种多层链接分离的skiplist构造方法及***,将***操作过程中的多层有序链表链接开销分摊到查找操作过程的各个有序单链表***链接过程中,相比skiplist的随机构造方案,仅在各层查找中对满足跨度要求的节点增加高度,即将节点链接到比当前节点高度更高一层的链表中,单个元素的链接操作时间开销为O(1),而***操作只需将元素***到底层有序单链表中,降低了多层链表间的耦合关系,从而提高skiplist的并发***性能;此外,相比skiplist的确定性构造方案,***元素后无需为了完善skiplist而重构整个数据结构,从而避免重构skiplist导致的skiplist不可用的情形发生。由此解决现有skiplist构造方案中,随机构造方案构造的skiplist相邻层的节点分布不能严格符合概率比、无法保证各层链表中节点的跨度均匀以及确定性构造方案需要对整个结构进行重构的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种多层链接分离的skiplist构造方法,包括:
(1)单个元素的查询,其子步骤为:
(1-1)设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
(1-2)从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则执行步骤(1-3),若扫描点处的元素大于目标元素,则执行步骤(1-4);
(1-3)计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则执行步骤(1-2);
(1-4)判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至执行步骤(1-2);
(2)单个元素***:若skiplist中不存在目标元素,则在最底层的有序单链表中将该目标元素***到步骤(1)返回的***点之后,且将节点高度设为1。
优选地,在步骤(1)之前,所述方法还包括:设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
按照本发明的另一方面,提供了一种多层链接分离的skiplist构造***,包括:
查询模块,用于单个元素的查询,其包括的子模块为:
设置模块,用于设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
第一扫描模块,用于从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则进入所述第二扫描模块,若扫描点处的元素大于目标元素,则进入所述第三扫描模块;
第二扫描模块,用于在扫描点处的元素小于目标元素时,将计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则返回所述第一扫描模块;
第三扫描模块,用于在扫描点处的元素大于目标元素时,判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至所述第一扫描模块;
元素***模块,用于在skiplist中不存在目标元素时,在最底层的有序单链表中将该目标元素***到所述查询模块返回的***点之后,且将节点高度设为1。
优选地,所述***还包括:
初始化模块,用于设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,主要有以下的技术优点:
(1)本发明提供的这种基于多层链接分离的新的跳表构造方法,通过在查找过程中判断计步器达到步长1/p来长高满足条件的节点,实现skiplist的相邻两层节点数目比例为p,保证skiplist的随机性数据结构的完整性;
(2)本发明所描述的跳表,其创建索引节点的操作被放在搜索过程中。需要注意的是,不限于***操作所涉及的搜索。任何搜索过程都可以应用所提出的“检查并创建索引节点”方法。
(3)相比随机构造方案的查找过程,本发明提供的方案中,尽管新的skiplist的元素查找过程会在每层的扫描过程中增加单链表的链接操作,但是一次节点长高操作只涉及两次指针的赋值操作,时间开销为O(1),几乎能忽略不计;然而,随机构造方案的查找过程需要为***节点保存查找路径,即***元素节点的前驱指针数组,而本发明提供的skiplist的查找过程却无此特殊要求,只需返回底层单链表的***点即可;
(4)相比随机构造方案的***开销为skiplist的平均高度,即O(logn),n为skiplist中元素的个数,本发明提供的skiplist的***过程仅涉及单链表特定***点的***操作,时间开销为O(1);
(5)相比确定性构造方法,本发明提供的skiplist的构造方案在***节点后,无需调整整个skiplist结构,从而节省重构skiplist操作的时间开销。
附图说明
图1为skiplist数据结构示意图;
图2为本发明实施例公开的一种多层链接分离的skiplist构造方法的流程图;
图3为本发明实施例公开的一种单个元素查找过程的流程图;
图4(a)为本发明实施例公开的一种***新元素之前的skiplist数据结构示意图;
图4(b)为本发明实施例公开的一种向skiplist中***新元素的流程图;
图5为本发明实施例公开的一种多层链接分离的skiplist构造***的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明所涉及的技术术语进行解释和说明:
如图1所示,skiplist表示一种随机化的数据结构,基于并联的链表,其搜索的时间复杂度为O(log n),n为skiplist中元素的个数;跳表是对有序的链表以随机高度的方式增加附加的前进链接,所以在列表中的查找可以快速的跳过部分列表。
如图2所示为本发明实施例公开的一种多层链接分离的skiplist构造方法的流程图,在图2所示的方法中,包括以下步骤:
(1)单个元素的查询,其子步骤为:
(1-1)设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
(1-2)从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则执行步骤(1-3),若扫描点处的元素大于目标元素,则执行步骤(1-4);
(1-3)计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则执行步骤(1-2);
(1-4)判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至执行步骤(1-2)。
参考图3所示,为本发明实施例公开的一种单个元素查找过程的流程图。通过图3所示的查询操作,单个元素的查询操作过程将满足预设值的节点长高,来满足跳表节点概率因子为p的随机性高度要求,完善跳表各层节点的概率比,提高后续元素的查找性能。
(2)单个元素***:若skiplist中不存在目标元素,则在最底层的有序单链表中将该目标元素***到步骤(1)返回的***点之后,且将节点高度设为1。
通过上述单个元素的***操作,单个元素的***相比典型的skiplist***操作,减少节点高度的随机生成过程和该节点在多层有序单链表的链接过程,从而大大提高元素的***性能。
优选地,在步骤(1)之前,还包括初始化操作:
设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
为了便于对本发明提出的一种多层链接分离的skiplist构造方法的理解,以下结合实施例进一步阐述本发明提供的skiplist构造方法,在本实施例中,设置概率因子P为0.5,高度阈值为5,skiplist中含有元素1、4、5、7、11、13、17,依次向skiplist中***14的流程如图4所示,具体包括如下步骤:
(1)***元素14的查找过程,包括如下子步骤:
(1.1)设置扫描层为skiplist当前的最大高度3,初始化计步器的值为0,从头结点head开始顺着前进方向进行扫描;
(1.2)首先,扫描点位于元素为4的节点处,14比4大,计步器增加1变为1,判断计数器的值未达到1/p;
(1.3)扫描点顺着前进方向移向下一个位置,即空指针NIL,后退一个位置,即回到元素为4的节点位置;
(1.4)判断扫描层高度为3,未达到底层,故扫描层下移一层,位于第2层;
(1.5)扫描点顺着前进方向移向下一个位置,即到达元素为7的位置,判断14比7大,计步器增加1变为2,判断计数器的值达到预设值1/p;
(1.6)长高元素为7的节点,同时将计步器置为0;
(1.7)扫描点顺着前进方向移向下一个位置,即空指针NIL,后退一个位置,即回到元素为7的节点位置;
(1.8)判断扫描层高度为2,未达到底层,故扫描层下移一层,位于第1层,即底层;
(1.9)同理,扫描点依次经过元素为11、13的节点,在元素为13的节点处,判断计步器达到1/p,故长高元素为13的节点,计步器置为0;
(1.10)扫描点顺着前进方向移向下一个位置,到达元素为17的位置,判断17比14大,判断扫描层已经到达底层,扫描点后退一步到达元素为13的节点处,返回扫描点的位置;
(2)***元素14的过程包括如下子步骤:
在底层有序单链表中,将元素为14的节点***到步骤(1)返回的位置后面;***元素14过程结束。
图5为本发明实施例公开的一种多层链接分离的skiplist构造***的结构示意图,在图5所示的***中包括:查询模块以及元素***模块;
上述查询模块包括:设置模块、第一扫描模块、第二扫描模块以及第三扫描模块:
上述设置模块,用于设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
上述第一扫描模块,用于从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则进入所述第二扫描模块,若扫描点处的元素大于目标元素,则进入所述第三扫描模块;
上述第二扫描模块,用于在扫描点处的元素小于目标元素时,将计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则返回所述第一扫描模块;
上述第三扫描模块,用于在扫描点处的元素大于目标元素时,判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至所述第一扫描模块;
上述元素***模块,用于在skiplist中不存在目标元素时,在最底层的有序单链表中将该目标元素***到所述查询模块返回的***点之后,且将节点高度设为1。
优选地,在图5所示的***中还包括:
初始化模块,用于设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种多层链接分离的skiplist构造方法,其特征在于,包括:
(1)单个元素的查询,其子步骤为:
(1-1)设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
(1-2)从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则执行步骤(1-3),若扫描点处的元素大于目标元素,则执行步骤(1-4);
(1-3)计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则执行步骤(1-2);
(1-4)判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至执行步骤(1-2);
(2)单个元素***:若skiplist中不存在目标元素,则在最底层的有序单链表中将该目标元素***到步骤(1)返回的***点之后,且将节点高度设为1。
2.根据权利要求1所述的方法,其特征在于,在步骤(1)之前,所述方法还包括:
设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
3.一种多层链接分离的skiplist构造***,其特征在于,包括:
查询模块,用于单个元素的查询,其包括的子模块为:
设置模块,用于设置当前扫描的层次为skiplist当前的最大高度,初始化计步器值为0,将当前所处的位置记为扫描点,将当前扫描的层次记为扫描层,将当前扫描的单链表记为扫描链;
第一扫描模块,用于从当前扫描的单链表开始按前进指针的方向扫描,判断待***的目标元素与扫描点处的元素的大小关系,若扫描点处的元素与目标元素相等,则返回,结束本次单个元素的***操作,继续下一个元素的***操作,若扫描点处的元素小于目标元素,则进入所述第二扫描模块,若扫描点处的元素大于目标元素,则进入所述第三扫描模块;
第二扫描模块,用于在扫描点处的元素小于目标元素时,将计步器增加1,并判断计步器中的计数值是否达到预设值,其中,预设值为概率因子p的倒数,若计步器的计数值达到预设值,则将扫描点处的节点高度增加1,即将该扫描点处的节点链接到扫描层的上面一层的链表中,同时计步器置0,扫描点向前移动,若计步器的计数值没有达到预设值,则返回所述第一扫描模块;
第三扫描模块,用于在扫描点处的元素大于目标元素时,判断当前扫描的层次是否为最底层,若是最底层,则返回扫描点的后退一个位置,并记为***点,若不是最底层,则将扫描点后退一步,扫描层下移一层,从后退之后的扫描点处的节点开始,转至所述第一扫描模块;
元素***模块,用于在skiplist中不存在目标元素时,在最底层的有序单链表中将该目标元素***到所述查询模块返回的***点之后,且将节点高度设为1。
4.根据权利要求3所述的***,其特征在于,所述***还包括:
初始化模块,用于设置概率因子p和skiplist节点所能达到的高度阀值;分配skiplist对象,skiplist具有当前高度和头结点两个属性,并初始化头结点,以高度阀值作为头节点的高度,分配前进链接指针数组,指针数组的每个元素指向空指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611236173.9A CN106649790A (zh) | 2016-12-28 | 2016-12-28 | 一种多层链接分离的skiplist构造方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611236173.9A CN106649790A (zh) | 2016-12-28 | 2016-12-28 | 一种多层链接分离的skiplist构造方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106649790A true CN106649790A (zh) | 2017-05-10 |
Family
ID=58832258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611236173.9A Pending CN106649790A (zh) | 2016-12-28 | 2016-12-28 | 一种多层链接分离的skiplist构造方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649790A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280229A (zh) * | 2018-02-26 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 内存数据读写方法和装置 |
CN110597805A (zh) * | 2019-07-24 | 2019-12-20 | 浙江大学 | 一种高效的新型内存索引结构处理方法 |
CN111814007A (zh) * | 2020-07-31 | 2020-10-23 | 新华三信息安全技术有限公司 | 双向链表数据处理方法、装置、设备及机器可读存储介质 |
CN113065964A (zh) * | 2021-04-13 | 2021-07-02 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储***及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664179A (en) * | 1995-06-27 | 1997-09-02 | Mci Corporation | Modified skip list database structure and method for access |
US20060294118A1 (en) * | 2005-06-24 | 2006-12-28 | Seagate Technology Llc | Skip list with address related table structure |
US20100325083A1 (en) * | 2009-06-18 | 2010-12-23 | Canon Kabushiki Kaisha | Skip list generation |
CN103425802A (zh) * | 2013-09-10 | 2013-12-04 | 北京信息科技大学 | 一种磁盘文件的快速检索方法 |
CN103544300A (zh) * | 2013-10-31 | 2014-01-29 | 云南大学 | 一种云环境下可扩展存储索引结构的实现方法 |
CN103970795A (zh) * | 2013-01-31 | 2014-08-06 | 杭州勒卡斯广告策划有限公司 | 一种数据处理方法、装置及*** |
-
2016
- 2016-12-28 CN CN201611236173.9A patent/CN106649790A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5664179A (en) * | 1995-06-27 | 1997-09-02 | Mci Corporation | Modified skip list database structure and method for access |
US20060294118A1 (en) * | 2005-06-24 | 2006-12-28 | Seagate Technology Llc | Skip list with address related table structure |
US20100325083A1 (en) * | 2009-06-18 | 2010-12-23 | Canon Kabushiki Kaisha | Skip list generation |
CN103970795A (zh) * | 2013-01-31 | 2014-08-06 | 杭州勒卡斯广告策划有限公司 | 一种数据处理方法、装置及*** |
CN103425802A (zh) * | 2013-09-10 | 2013-12-04 | 北京信息科技大学 | 一种磁盘文件的快速检索方法 |
CN103544300A (zh) * | 2013-10-31 | 2014-01-29 | 云南大学 | 一种云环境下可扩展存储索引结构的实现方法 |
Non-Patent Citations (2)
Title |
---|
陈玉萍: "浅谈一种扩展的数据结构――跳表", 《科技信息(学术版)》 * |
马越等: "一种基于跳表的DDM相交区域快速查询算法", 《计算机仿真》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280229A (zh) * | 2018-02-26 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 内存数据读写方法和装置 |
CN108280229B (zh) * | 2018-02-26 | 2022-01-25 | 腾讯科技(深圳)有限公司 | 内存数据读写方法和装置 |
CN110597805A (zh) * | 2019-07-24 | 2019-12-20 | 浙江大学 | 一种高效的新型内存索引结构处理方法 |
CN110597805B (zh) * | 2019-07-24 | 2022-04-12 | 浙江大学 | 一种内存索引结构处理方法 |
CN111814007A (zh) * | 2020-07-31 | 2020-10-23 | 新华三信息安全技术有限公司 | 双向链表数据处理方法、装置、设备及机器可读存储介质 |
CN111814007B (zh) * | 2020-07-31 | 2023-03-31 | 新华三信息安全技术有限公司 | 双向链表数据处理方法、装置、设备及机器可读存储介质 |
CN113065964A (zh) * | 2021-04-13 | 2021-07-02 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储***及方法 |
CN113065964B (zh) * | 2021-04-13 | 2024-05-03 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649790A (zh) | 一种多层链接分离的skiplist构造方法及*** | |
Cao et al. | Evaluation of two methods for cubic-volume prediction of loblolly pine to any merchantable limit | |
Levitin et al. | A genetic algorithm for robotic assembly line balancing | |
Kershenbaum et al. | Centralized teleprocessing network design | |
McDiarmid et al. | Counting phylogenetic networks | |
CN109903049A (zh) | 一种区块链交易数据存储方法、装置、设备及存储介质 | |
US7742906B2 (en) | Balancing collections of vertices in a network | |
CN107544251B (zh) | 一种基于分布式鲁棒模型的最小化总拖期的单机调度方法 | |
CN107220731A (zh) | 一种物流配送路径规划方法 | |
CN108848146A (zh) | 一种基于时间触发通信业务的调度优化方法 | |
Pettie | Towards a final analysis of pairing heaps | |
CN109889205A (zh) | 编码方法及***、解码方法及***、编解码方法及*** | |
Elkin et al. | Near-additive spanners in low polynomial deterministic CONGEST time | |
Angel et al. | Rotor walks on general trees | |
Fusy | Uniform random sampling of planar graphs in linear time | |
CN107276664A (zh) | 基于门限式负载的混合虚网映射方法 | |
Petersen et al. | Near-optimal adjacency labeling scheme for power-law graphs | |
Karp et al. | Average case analysis of a heuristic for the assignment problem | |
CN107203865A (zh) | 一种订单的分配方法和装置 | |
CN109726479A (zh) | 一种三维片上网络垂直通道的部署方法 | |
Mitchell | Branch-and-cut for the k-way equipartition problem | |
CN105959224A (zh) | 基于比特向量的高速路由查找装置及方法 | |
Amestoy et al. | A parallel matrix scaling algorithm | |
CN112561700A (zh) | 区块链中交易数据的存储方法、验证方法、及区块链*** | |
Kanaev et al. | Increasing the efficiency of the functioning of transport communication networks by using a modified method for determining a set of independent routes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170510 |
|
RJ01 | Rejection of invention patent application after publication |