数据结构与算法之美-跳表-极客时间学习笔记

跳表是一种在链表结构上实现快速查找的数据结构,通过建立多级索引来加速搜索。每层索引跳跃不同的节点数,如每层跳过1个或2个元素,以此提高查找效率。在最坏情况下,复杂度为O(3*logn),空间复杂度为O(n)。虽然插入和删除可能导致索引效率下降,但通过随机函数同步插入数据到索引中,可以避免退化为单链表,保持高效查找性能。
摘要由CSDN通过智能技术生成

二分查找是针对数组结构的,那么链表结构有没有类似的方法可以实现快速查找?

按照以空间换时间的思路,我们把单链表想象成一本书,每个节点都是1页,那么快速搜索的方法就是建立目录索引(并非完全相同的概念,这里的索引也需要遍历,不能跳跃)。从一页页翻页变成在按照索引一个个查找,然后再下一层进入到节点层查找。

为了加快搜索速度,可以建立不止一级索引,上一层以下一层为基础,每次跳过1个元素(这里并不固定,只是常规是跳1个或者2个)。可以看到上图,5层索引后查找第62个节点,只需要11次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值