数据结构与算法 / 跳表
一、诞生原因
解决链表查询时耗时过长的问题。
二、基本信息
英文全称:Skip List 。
链表 + 多级索引(链表) = 跳表
三、原理说明
顾名思义,跳表的查询是在多个链表之间跳跃查询的,其路线类似于走台阶,如下图所示:
举个栗子:
某一时刻,想查询代号为 8 的节点的数据,按照常规链表查询,需要从最左侧挨个查询至最右侧,遍历次数为 8 ,时间复杂度为 O(n) 。
若添加一级索引,遍历次数为 5;若再添加二级索引,遍历次数为 4,遍历路线犹如下台阶一跳一跳的,故该结构名为跳表。
跳表实际上是典型的空间换时间的思想。
时间复杂度:跳表可以说是利用多级链表实现的二分查找,如图所示,故 时间复杂度为 O(logn) 。
参考:极客时间《数据结构与算法之美》王争
这门课真心推荐,内容很经典、栗子很形象,里面还包含了很多面试题目。真是居家旅行必备良药。
(SAW:Game Over!)
数据结构与算法 / 跳表相关推荐
- 数据结构与算法-2-链表的基本操作-查找
数据结构与算法-2-链表的基本操作-查找(c语言) 本文是单链表的C语言实现方法,包括单链表的创建.插入.删除.修改.查找等基本操作. 链表结点的类型定义 /*链式存储结构的头结点*/ typedef ...
- 数据结构与算法-4-链表的基本操作-增
数据结构与算法-4-链表的基本操作-增 注意:以下为顺序存储结构实现 相关的头文件 /*以下为头文件SqList.h是用于定义相关函数的头文件*/ #pragma once #define LIST_ ...
- 数据结构进阶篇-跳表
大家想必都知道,数组和链表的搜索操作的时间复杂度都是O(N)的,在数据量大的时候是非常耗时的.对于数组来说,我们可以先排序,然后使用二分搜索,就能够将时间复杂度降低到O(logN),但是有序数组的插入 ...
- 数据结构学习——skiplist跳表
目录 1.skiplist简介 2.skiplist核心思想 3.skiplist原理 3.1 跳表的查找 3.2 跳表的插入 3.3 跳表的删除 4.skiplist简单实现 1.skiplist简 ...
- 左神数据结构与算法(基础)——表、树、图、贪心、递归
2.1 哈希表.有序表.单链表和双链表 ①哈希表的简单介绍 1>哈希表在使用层面可以理解为一种集合结构. 2>如果只有key,没有伴随数据value,可以使用HashSet结构 3> ...
- 数据结构与算法 | 线性表 —— 链表
原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...
- 数据结构于算法—线性表
目录 前言 线性表基本架构 顺序表 插入 删除 其他操作 链表 基本结构 插入 带头节点与不带头节点 插入尾 删除 其他 代码实现 顺序表 链表 测试与结果 总结 原创公众号:bigsai 文章收藏在 ...
- 高级数据结构与算法 | 跳跃表(Skip List)
文章目录 区间查询时链表与顺序表的局限 跳表=链表+索引 跳表的原理 晋升 插入 删除 跳表的实现 跳表VS红黑树 区间查询时链表与顺序表的局限 假设有这样一个情景, 此时需要设计一个拍卖系统,对于商 ...
- Java版数据结构与算法——线性表
*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...
最新文章
- 牛客第七场 Sudoku Subrectangles
- BZOJ 1503 treap
- 6.windows线程切换_主动切换
- 京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...
- leetcode513. 找树左下角的值(dfs)
- python中max()、min()获得最大值与最小值_(Python基础教程之十)Python max()和min()–在列表或数组中查找最大值和最小值...
- Stamp Rally
- 引入 Gateway 网关,这些坑一定要学会避开!!!
- java中priorityqueue_详解JAVA中priorityqueue的具体使用
- 17.go 面向对象 interface
- mysql 中间表的好处_MySql 使用中间表来提高统计查询速度
- java 多表联合查询后的结果的结果放入list里 如何拿出来_联表查询出来的结果集合放入两个POJO中然后放入List里,然后在JSP里显示出来。高手请进……急……在线等!...
- 使用vcpkg安装cgal前安装yasm报错
- java 卡牌游戏抽奖。
- 计算机网络——第三章 数据链路层(详细附图)
- 基于百度飞桨PaddleOCR的图片文字识别
- 希望我这是最后一次谈SaaS
- vscode 删除的文件如何找回??
- 下血本买的!Android开发者出路在哪?先收藏了
- 利用js加密保护核心功能代码
热门文章
- IdentityServer4 实现 OpenID Connect 和 OAuth 2.0
- Centos7.0-安装docker
- HDU1164 Eddy's research I【素因子分解】
- android之PackageManager简单介绍
- adblock拦截iframe
- 让193FW显示1440x900还真不容易
- linux shell只读变量、删除变量
- 解决vscode下载速度慢的方法
- python pip配置镜像源:douban不能下载aliyun可以下载
- ubuntu报错:E: 仓库 “http://ppa.launchpad.net/docky-core/ppa/ubuntu bionic Release” 没有 Release 文件