SkipList在各种开源引擎中用处普遍,例如redis的sortedset容器、luence里面的索引字典等均用到了skiplist。 1.SkipList 在数据结构里面,我们知道有两种基本数据存储结构:数组和链表。它们均有其各自的特点,数组(特别是有序数组),可以进行快速查询,但不便于删...
分类:
其他好文 时间:
2015-12-07 00:32:23
阅读次数:
187
跳表(SkipList)简介:
给你一个有序数组,如果现在需要查找某一个数字,你可能会用二分法。
但是如果给你的是一个有序链表,那就用不上二分法了,你能想到什么方法?
跳表是一种很好的选择,理解和实现出来也相对比较容易。
跳表的查询:
例如给出链表: 30 → 40 → 50 → 60 → 70 → 90
现在要插入一个 80 ,如果是用普通方法从头到尾逐个搜索的...
分类:
其他好文 时间:
2015-08-20 13:08:48
阅读次数:
131
1.Bloom Filter
由一个很长的二进制向量和一系列hash函数组成
优点:可以减少IO操作,省空间
缺点:不支持删除,有误判
如果要支持删除操作: 改成计数布隆过滤器
2.SkipList(跳表)
核心思路: 由多层组成,每层都是一个有序链表,最底层包含所有元素,元素数逐层递减。每个节点包含两个指针,一个->,一个向下。
并行编程情况下可以用...
分类:
编程语言 时间:
2015-08-10 14:53:22
阅读次数:
225
任何事情都无法阻挡我对一种简单之美的由衷惊叹。半夜思索,无法入眠,索性起床看会书,关于中东文明的,可是又看不进去,也许是潮热的原因
吧...还不如静下心来写一篇意识流文章,我指的是不用思考的那种,我已经被近东,中东的错综复杂的历史搞的有点烦了,那真是太难了。然..
分类:
其他好文 时间:
2015-07-22 11:05:00
阅读次数:
266
任何事情都无法阻挡我对一种简单之美的由衷惊叹。半夜思索,无法入眠,索性起床看会书,关于中东文明的,可是又看不进去,也许是潮热的原因吧...还不如静下心来写一篇意识流文章,我指的是不用思考的那种,我已经被近东,中东的错综复杂的历史搞的有点烦了,那真是太难了。然而你能想象我指的那个不用思考的东西是一个算法吗?算法不都是很难的吗?真的就是一个算法,也可以说是一个数据结构,这就是skiplist。 ...
分类:
其他好文 时间:
2015-07-22 06:58:28
阅读次数:
135
原文:http://www.cnblogs.com/xuqiang/archive/2011/05/22/2053516.html跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料. 聊一聊作者的其人其...
分类:
其他好文 时间:
2015-06-28 17:31:32
阅读次数:
138
举个例子,楼主逛完街要回张江玉兰香苑,如果从人民广场做公交车回去,要经历非常多站:
在游戏中排行榜是很常见的需求,之前一直使用的是redis的sortedset,所以就把...
分类:
其他好文 时间:
2015-06-25 21:18:11
阅读次数:
140
跳跃表
跳跃列表(也称跳表)是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(logn)平均时间)。
基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表,因此得名。所有操作都以对数随机化的时间进行。
如上图所示,是一个即为简单的跳跃表。传统意义的单链表是一个线性结构,向有序的链表...
分类:
其他好文 时间:
2015-06-09 00:59:18
阅读次数:
405
一、简介 跳表(skiplist)是一个非常优秀的数据结构,实现简单,插入、删除、查找的复杂度均为O(logN)。LevelDB的核心数据结构是用跳表实现的,redis的sorted set数据结构也是有跳表实现的。代码在这里:http://flyingsnail.blog.51cto.com/53...
分类:
编程语言 时间:
2015-06-02 21:29:28
阅读次数:
190