




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
让算法的效率“跳起来”!,浅谈“跳跃表”的相关操作及其应用,“跳跃表”新生的宠儿,跳跃表(SkipList)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的时间复杂度均为O(logn),有着近乎替代平衡树的本领。而且最重要的一点,就是它的编程复杂度较同类的AVL树,红黑树等要低得多,这使得其无论是在理解还是在推广性上,都有着十分明显的优势。,“跳跃表”的结构,跳跃表由多条链构成(S0,S1,S2,Sh),且满足如下三个条件:每条链必须包含两个特殊元素:+和-S0包含所有的元素,并且所有链中的元素按照升序排列。每条链中的元素集合必须包含于序数较小的链的元素集合,即:,“跳跃表”的时空效率,空间复杂度:O(n)(期望)跳跃表高度:O(logn)(期望)相关操作的时间复杂度:查找:O(logn)(期望)插入:O(logn)(期望)删除:O(logn)(期望),基本操作一查找,目的:在跳跃表中查找一个元素x在跳跃表中查找一个元素x,按照如下几个步骤进行:从最上层的链(Sh)的开头开始假设当前位置为p,它向右指向的节点为q(p与q不一定相邻),且q的值为y。将y与x作比较x=y输出查询成功,输出相关信息xy从p向右移动到q的位置xy从p向下移动一格如果当前位置在最底层的链中(S0),且还要往下移动的话,则输出查询失败,查询元素53的全过程,S0,S1,S2,S3,查找成功!,基本操作二插入,目的:在跳跃表中插入一个元素x插入操作由两部分组成:查找插入的位置和插入对应元素。为了确定插入的“列高”,我们引入一个随机决策模块:产生一个0到1的随机数rrrandom()如果r小于一个概率因子P,则执行方案A,ifrpthendoA否则,执行方案BelsedoB,列的初始高度为1。插入元素时,不停地执行随机决策模块。如果要求执行的是A操作,则将列的高度加1,并且继续反复执行随机决策模块。直到第i次,模块要求执行的是B操作,我们结束决策,并向跳跃表中插入一个高度为i的列。,基本操作二插入,假设我们现在要插入一个元素40到已有的跳跃表中。,插入的位置,随机化模块运行状况:,基本操作三删除,目的:从跳跃表中删除一个元素x删除操作分为以下三个步骤:在跳跃表中查找到这个元素的位置,如果未找到,则退出将该元素所在整列从表中删除将多余的“空链”删除,概率因子P对跳跃表的影响,在插入操作中,我们引入了一个概率因子P,它决定了跳跃表的高度,并影响到了整个数据结构的效率。让我们来看看在实际评测过程中,不同的P在时空效率上的差异。,跳跃表的应用,高效率的相关操作和较低的编程复杂度使得跳跃表在实际应用中的范围十分广泛。尤其在那些编程时间特别紧张的情况下,高性价比的跳跃表很可能会成为你的得力助手。,您正为找不到合适的数据结构而感到烦恼吗?您正为自己编写程序的效率高低而感到担忧吗?您正为陷入R-Btree的深渊又无法自拔而感到苦闷吗?,朋友!,试试跳跃表吧!,它将给您的编程带来超高的效率与无尽的快乐!,机不可失,时不再来!详情请致电:1381xxxxxxx,跳跃表的应用,NOI2004Day1郁闷的出纳员(Cashier)抽象题意:,要求维护这样一个数据结构,使得它支持以下四种操作:I(x)插入一个值为x元素A(x)现有全体元素加上一个值xS(x)现有全体元素减去一个值xF(i)查找现有元素中第i大的元素值(x为105级别)同时还要保持这样一个性质:现有的元素必须都大于一个特定的值min,小于min的要删去。,我们利用一个虚拟的“零线”来表示0在数据结构中的相对位置。这样在进行A和S操作的时候,只要对“零线”进行调整即可,并不需要对所有元素的值做全面的修改。而在做S操作时,为了维持题意中的性质,要注意将值低于(“零线”+min)的元素删除。支持这些操作的数据结构有很多,比如说线段树,伸展树,跳跃表等。,跳跃表的应用,NOI2004Day1郁闷的出纳员(Cashier),评测结果:(单位:秒),空间复杂度O(n)摆脱实数的约束极小的编程复杂度能够使你很短的内解决此题!,跳跃表的应用,HNOI2004Day1宠物收养所(Pet)抽象题意:维护一个数据结构,使得它支持以下两种操作:插入一个元素x(0x231)给定一个元素y,删除现有与y差值最小的元素x(|x-y|为最小)所有操作次数不超过80000,思考.,线段树?,如果采取边做边开空间的策略,勉强可以缓解内存的压力。但此题对内存的要求很苛刻,元素相对范围来说也比较少,如果插入的元素稍微分散一些,就很有可能使得空间复杂度接近O(nlogR)!,何况如果拓展一下,插入的元素不是整数而是实数呢?,跳跃表!,好!,总结,跳跃表作为一种新兴的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村产权房互换合同范例
- 出售转让磨煤机合同范例
- 买公寓定金合同范例
- 便道砖合同范例
- 水利水电工程技术支持试题及答案
- 出售农村房屋出租合同范例
- 个人租赁吊车合同范例
- 债券融资居间合同范例
- 2025年新颖工程项目管理试题及答案
- 工程经济小组讨论答疑试题及答案
- 2025年浙江省宁波市江北区行政服务中心招聘编外人员笔试和高频重点提升(共500题)附带答案详解
- DB33T 628.1-2021 交通建设工程工程量清单计价规范 第1部分:公路工程
- 非谓语动词-动名词和分词
- 生产安全质量培训
- 复工协议书模板
- 医院培训课件:《麻精药品规范化管理和使用》
- 数列-2020-2024年高考数学试题分类汇编(原卷版)
- 2025年部门预算支出经济分类科目说明表
- 基于强磁吸附的履带式爬壁机器人结构设计
- 《煤矿安全生产条例》知识培训
- 外语系职业规划
评论
0/150
提交评论