跳表

作者: ZMRWEGo | 来源:发表于2019-03-29 11:03 被阅读0次

一、跳表的优点

对于一个需要频繁删除的线性有序结构,如何使插入/删除的速度提升?

  • 对于单向链表,只能从头到尾遍历,时间复杂度为O(n)
  • 对于数组,删除插入复杂度太高O(n),还会涉及数组的扩容操作
  • 平衡二叉树查询速度很快,但是需要平衡的操作开销很大
  • 红黑树的话,性能差不多,但是如果需要多进程同时访问修改的话,红黑树有个平衡的过程,争锁代价也比较大
  • 跳表的线程安全也是通过cas锁实现的,跳表的构建相对简单,同时支持范围查找
    缺点:
    相对于红黑树,空间消耗增加

二、增删改查

  1. 加入多层索引,加快查询速度,理想的跳表上层节点数量为下层的一半,相当于二分,复杂度为O(logn)
  2. 插入与删除都可由查找和更新两部分构成。查找的时间复杂度为O(logn),更新部分的复杂度与跳跃表的高度成正比,所以总的时间复杂度为O(logn)

相关文章

  • 跳表

    跳表的定义 跳表(SkipList):增加了向前指针的链表叫做跳表。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化...

  • 跳表

    跳表的定义 跳表(SkipList):增加了向前指针的链表叫做跳表。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化...

  • HBase内存管理之MemStore

    基于跳表实现的MemStore基础模型 实现MemStore模型的数据结构是SkipList(跳表),跳表可以实现...

  • 2.跳表的基本实现和特性

    一、跳表 跳表的设计与实现为啥 redis 使用跳表(skiplist)而不是使用 red-black redis...

  • 有关跳跃表的干货都在这里

    跳表的数据结构 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。...

  • [AlgoGo]跳表SkipList

    跳表是什么 跳表的实现基于链表,弥补了链表不便于查找的缺点,所以跳表其实不是表(table)而是链(list)。跳...

  • 知识快速回顾(数据结构+算法)

    打卡时间:2020-2-23 19:46 ~ 20:30 跳表 什么是跳表 ? 跳表是一种高效的链表结构,它通过增...

  • 跳表skiplist

    增加了向前指针的链表叫作跳表。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查...

  • 03、数组、链表、跳表

    数组 链表 跳表 ![ 跳表在工程中的应用LRU Cache - Linked listhttps://www.j...

  • 【算法打卡60天】Day15跳表:为什么Redis一定要用跳表来

    Day15学习内容主要为以下三点:1.如何理解“跳表”?跳表:链表加多级索引的结构。跳表使用空间换时间的设计思路,...

网友评论

      本文标题:跳表

      本文链接:https://www.haomeiwen.com/subject/zbgkbqtx.html