redis跳跃表

最近在阅读redis设计与实现,关于redis数据结构zset的一种底层实现跳跃表一直没有太理解,因此在搜了一下资料,终于搞懂了它的设计思路,记录一下。redis

参考连接:https://mp.weixin.qq.com/s?src=11&timestamp=1553915878&ver=1515&signature=SuSdA-Ka7Bs7CzSnNHgHFR7DkFFibGdRUui-FkuSRn2OJOkn6uvGznFMheSfoxaSHYlcgfGnBQ9imQdTAg5hiaqp2pq2Cn6LWIjN-ZonEvUwLrWwjMxs1WjTFx1A6Wkb&new=1数组

跳跃表(英文名:Skip List),于 1990 年 William Pugh 发明,是一个能够在有序元素中实现快速查询的数据结构,其插入,查找,删除操做的平均效率都为 O(logn),当须要实现有序列表时,若是使用数组,查找是很快速的,可是插入、删除须要移动大量的元素,成本太大;若是使用链表,虽然插入、删除很方便,可是查询确实O(n)的,当数据量比较大时,这个效率是不能接受的。跳跃表就是综合了数组和链表的特色,使用空间换时间的方法,提高了查询的效率。数据结构

相关文章
相关标签/搜索