SkipList(跳表)

news2024/11/25 20:31:57

基本概述

SkipList(跳表)首先是链表,但与传统链表相比有几点差异:

  • 元素按照升序排列存储
  • 节点可能包含多个指针,指针跨度不同【根据元素个数不同,可以建立多级指针(最多可以建立32级指针)】

主要是为了提高查找效率!

image-20230614221250024

源码:

image-20230614221438579

完整结构:

image-20230614221902669

特点

  • 跳跃表是一个双向链表,每个节点都包含score和ele值
  • 节点按照score值排序,score值一样则按照ele字典排序
  • 每个节点都可以包含多层指针,层数是1到32之间的随机数
  • 不同层指针到下一个节点的跨度不同,层级越高,跨度越大
  • 增删改查效率与红黑树基本一致,实现却更简单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

liunx优化命令之free命令

free 这里写目录标题 一、free命令描述:1.free命令的语法:2.free命令的选项:3.free命令的输出格式: 二、压力测试工具stress:1.工具简介:2.参数详解:3.下载压力测试工具: 三、模拟实…

基于51单片机设计的红外遥控器

一、项目介绍 遥控器是现代生活中必不可少的电子产品之一,目前市面上的遥控器种类繁多,应用范围广泛。而 NEC 红外遥控器协议则是目前应用最为广泛的一种协议之一,几乎所有的电视、空调等家用电器都支持该协议。 本项目是基于 51 单片机设计支持 NEC 协议的红外遥控器,实…

TPU-MLIR的环境搭建和使用

1、开发环境配置 Linux开发环境 一台安装了Ubuntu16.04/18.04/20.04的x86主机&#xff0c;运行内存建议12GB以上下载SophonSDK开发包(v23.03.01) &#xff08;1&#xff09;解压缩SDK包 sudo apt-get install p7zip sudo apt-get install p7zip-full 7z x Release_<date&…

docker数据管理---数据卷,数据卷容器

在Docker中&#xff0c;数据卷&#xff08;data volumes&#xff09;和数据卷容器&#xff08;data volume containers&#xff09;是用于在容器之间共享和持久化数据的两种不同的机制。 一、数据卷 数据卷是一个特殊的目录或目录&#xff0c;可以绕过容器文件系统的常规层&a…

CSDN 周赛 58 期

CSDN 周赛 58 期 前言1、题目名称&#xff1a;打家劫舍2、题目名称&#xff1a;小Q的鲜榨柠檬汁3、题目名称&#xff1a;收件邮箱4、题目名称&#xff1a;莫名其妙的键盘后记 前言 很多人都知道&#xff0c;CSDN 周赛的题目出自每日一练&#xff0c;甚至连用例都不会变动&…

【一起啃书】《机器学习》第九章 聚类

文章目录 第九章 聚类9.1 聚类任务9.2 性能度量9.2.1 外部指标9.2.2 内部指标 9.3 距离计算9.3.1 欧氏距离9.3.2 曼哈顿距离9.3.3 切比雪夫距离9.3.4 闵可夫斯基距离9.3.5 标准化的欧几里得距离9.3.6 马氏距离9.3.7 兰氏距离9.3.8 余弦距离9.3.9 汉明距离9.3.10 编辑距离 9.4 原…

替换CentOS 6.x系统中 X11图形界面的启动logo

这个属于定制一个系统的logo了。 网上有很多方法&#xff0c;直接修改一个是最简单的了。 看操作&#xff1a; 下载CentOS 的主题&#xff0c;网上自己搜一个喜欢的就行了。 [rootlocalhost Downloads]# tar zxvf vizta-use-it.tar.gz [rootlocalhost Downloads]# cd vizta …

目标检测数据集:红外图像弱小飞机目标检测数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

ArduPilot开源代码之AP_VideoTX

ArduPilot开源代码之AP_VideoTX 1. 源由2. AP_VideoTX子模块2.1 AP_VideoTX2.1.1 AP_VideoTX::init2.1.1 AP_VideoTX::update 2.2 AP_Tramp2.2.1 AP_Tramp::init2.2.2 AP_Tramp::update2.2.3 AP_Tramp::process_requests 2.3 AP_SmartAudio2.3.1 AP_SmartAudio::init2.3.2 AP_S…

requests库的使用

文章目录 get 请求post 请求get 请求和 post 请求的区别response1. res.headers2. status_code3. json get 请求 参数类型作用urlstr发起请求的地址params字典url为基准地址&#xff0c;不包含查询参数&#xff1b;使用此参数会自动对 params 字典编码&#xff0c;然后和url拼…

【Spring】@PropertySource 配置文件自定义加密、自定义Yaml文件加载

文章目录 前言参考目录实现步骤1、包结构2、Maven3、自定义配置文件4、application 文件5、自定义数据库配置 MyDataSource6、加密配置 EncryptYamlProperties7、自定义读取yaml配置 MyPropertySourceFactory8、测试加密解密9、自定义 Properties 文件读取10、测试自定义配置读…

走近科学之《JVM 的秘密》

JVM JVM、内存模型、类加载机制、对象的创建、垃圾回收机制、对象内存分配策略、JVM调优等。 1 简介 JVM 即 java 虚拟机&#xff08;Java Virtual Machine&#xff09;&#xff0c;JVM是一种用于计算设备的规范&#xff0c;是一个虚构出来的计算机。是通过在实际计算机上仿真…

msvcr120.dll丢失的解决方法-一键解决提示msvcr120.dll丢失问题

msvcr120.dll是的动态链接库文件之一。它在Windows操作系统中发挥着重要的作用&#xff0c;它提供了应用程序所需的各种功能和方法。 该文件返回编译后的代码所需的支持库。msvcr120.dll包含用于C / C编译器生成的应用程序所需的重要功能&#xff0c;包括数学函数&#xff0c;…

Selenium定位不到元素怎么办?一定要这么做

目录 1、frame/iframe表单嵌套 selenium自动化测试视频教程&#xff1a; 2、页面跳转到新标签页&#xff0c;或弹出警告框等 3、页面元素失去焦点导致脚本运行不稳定 4、使用Xpath或CSS定位 6、元素被遮挡&#xff0c;不可用&#xff0c;不可见 2023最新的Selenium自动化…

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法 第一步&#xff1a;部署rabbitmq 部署rabbitmq请移步&#xff08;在这里可以找到erlang和rabbitmq适配的版本并下载安装包&#xff09;&#xff1a; https://blog.csdn.net/char1otte/article/de…

mysql:索引原理与慢查询优化

一 索引的原理 1. 索引原理 索引的目的在于提高查询效率&#xff0c;与我们查阅图书所用的目录是一个道理&#xff1a;先定位到章&#xff0c;然后定位到该章下的一个小节&#xff0c;然后找到页数。相似的例子还有&#xff1a;查字典&#xff0c;查火车车次&#xff0c;飞机…

【Shiro】第一章 权限概述

目录 1、什么是权限 2、认证概念 3、授权概念​​​​​​​ 1、什么是权限 权限管理&#xff0c;一般指根据系统设置的安全策略或者安全规则&#xff0c;用户可以访问而且只能访问自己被授权的资源&#xff0c;不多不少。权限管理几乎出现在任何系统里面&#xff0c;只要…

玩转ChatGPT:R代码Debug一例

一、写在前面 今天家里领导发来求助&#xff0c;说是用GPT-3.5写一个 计算mRNA干性指数 的R代码&#xff0c;运行报错。让我用GPT-4帮忙Debug一哈。 搞了半小时&#xff0c;还是有亿点感悟&#xff0c;写段文字记录记录。 二、踩坑过程 &#xff08;1&#xff09;先看原始的…

渗透测试报告怎么写?记得收藏好哦

目录 1、准备好渗透测试记录 2、撰写渗透测试报告书 报告书的撰写建议 1、重点 2、图表重于文字 3、结果与建议 总结&#xff1a; 1、准备好渗透测试记录 测试记录是执行过程的日志&#xff0c;在每日测试工作结束后&#xff0c;应将当日的成果做成记录&#xff0c;虽然…

【Spring学习之更简单的读取和存储Bean对象】属性注入,set注入,构造方法注入

前言&#xff1a; &#x1f49e;&#x1f49e;今天我们依然是学习Spring&#xff0c;这里我们会更加了解Spring的知识&#xff0c;知道Spring是怎么更加简单的读取和存储Bean对象的。也会让大家对Spring更加了解。 &#x1f49f;&#x1f49f;前路漫漫&#xff0c;希望大家坚持…