最近在阅读redis设计与实现,关于redis数据结构zset的一种底层实现跳跃表一直没有太理解,因此在搜了一下资料,终于搞懂了它的设计思路,记录一下。redis
跳跃表(英文名:Skip List),于 1990 年 William Pugh 发明,是一个能够在有序元素中实现快速查询的数据结构,其插入,查找,删除操做的平均效率都为 O(logn),当须要实现有序列表时,若是使用数组,查找是很快速的,可是插入、删除须要移动大量的元素,成本太大;若是使用链表,虽然插入、删除很方便,可是查询确实O(n)的,当数据量比较大时,这个效率是不能接受的。跳跃表就是综合了数组和链表的特色,使用空间换时间的方法,提高了查询的效率。数据结构