跳跃表实现简单,空间复杂度和时间复杂度也较好,Redis中使用跳表而不是红黑树。 实现参考了: "跳跃列表 维基百科,自由的百科全书" 《Redis设计与实现》第五章 跳跃表 Redis源码3.0分支src/t_zset.c等文件 插入时的核心逻辑: 1. 找到插入的位置 2. 随机得到新插入节点的 ...
分类:
其他好文 时间:
2019-11-20 16:54:47
阅读次数:
71
出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构。 InnoDB的索引结构 在InnoDB中是通过一种多路搜索树——B+树实现索引结构的。在B+树 ...
分类:
数据库 时间:
2019-11-04 13:43:04
阅读次数:
69
08:20 “真有才能的人总是善良的,坦白的,爽直的,决不矜持;他们的讥讽只是一种精神游戏,并不针对别人的自尊心。” ——巴尔扎克 因为近期颈椎确实不适,早上出门的时候路过一间刚好开门的药店就进去买了一盒“大活络痛消奇贴”,多少钱一盒来着我忘记了,刷的是医保卡,前后下来也就在店里耗了两分钟。眼看着何 ...
分类:
其他好文 时间:
2019-10-29 21:33:23
阅读次数:
109
SQL查询语句 视图 索引 性能 四大范式+BFN范式 OLAP OLTP 写放大,读放大,磁盘放大 levelDB LSM树 缓存跳表 快照功能 immutable table 布隆过滤器 RocksDB column-familyMultithread compaction Single del ...
分类:
数据库 时间:
2019-10-18 12:26:05
阅读次数:
105
跳表对数据结构中的数据常见的操作有:查找、插入、删除。有序数组的二分查找操作速度很快,但是插入、删除操作很耗时,并且对内存要求很苛刻。那么有什么数据结构能够做到查找、插入、删除操作速度都很快而且对内存要求不高呢?——答案是:跳表。 跳表是什么?即:把有序链表改造位支持“二分查找”算法,这种链表叫做跳 ...
分类:
其他好文 时间:
2019-10-09 19:01:48
阅读次数:
150
跳表(SkipList)是一种可用来进行快速查找的数据结构,时间复杂度为O(logn),有点类似于平衡树。之所以这么说,是因为它们都可以对元素进行快速的查找。但二者有一个重要的区别:对平衡树的修改(也就是所谓的插入和删除)往往很可能会导致平衡树进行一次全局的调整(也就是所谓的调平),而对跳表而言,插... ...
分类:
编程语言 时间:
2019-09-28 10:59:20
阅读次数:
111
掌握了数据结构和算法才能够写出性能更优的代码。而看待问题的深度,解决问题的角度就会完全不一样。 数据结构 数组 链表 栈 队列 散列表 堆 二叉树 图 Trie树 跳表 一些常见算法 递归 排序 搜索 二分查找 哈希算法 贪心算法 分治算法 回溯算法 动态规划 字符串匹配算法 摆脱CRUD boy, ...
分类:
编程语言 时间:
2019-09-12 18:37:01
阅读次数:
106
跳表的原理 跳表也叫跳跃表,是一种动态的数据结构。如果我们需要在有序链表中进行查找某个值,需要遍历整个链表,二分查找对链表不支持,二分查找的底层要求为数组,遍历整个链表的时间复杂度为O(n)。我们可以把链表改造成B树、红黑树、AVL树等数据结构来提升查询效率,但是B树、红黑树、AVL树这些数据结构实 ...
分类:
其他好文 时间:
2019-08-22 23:40:47
阅读次数:
117
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3374.html 题目大意 略。 分析 要手写 AVL 树,而红黑树,SB 树,跳表不可以。 代码如下 1 #include <bits/ ...
分类:
其他好文 时间:
2019-08-10 11:48:10
阅读次数:
91
掌握20 个知识点就足够了。 这里面有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 ...
分类:
其他好文 时间:
2019-08-02 14:38:39
阅读次数:
74