最近在閱讀redis設計與實現,關於redis數據結構zset的一種底層實現跳躍表一直沒有太理解,因此在搜了一下資料,終於搞懂了它的設計思路,記錄一下。redis
跳躍表(英文名:Skip List),於 1990 年 William Pugh 發明,是一個能夠在有序元素中實現快速查詢的數據結構,其插入,查找,刪除操做的平均效率都爲 O(logn),當須要實現有序列表時,若是使用數組,查找是很快速的,可是插入、刪除須要移動大量的元素,成本太大;若是使用鏈表,雖然插入、刪除很方便,可是查詢確實O(n)的,當數據量比較大時,這個效率是不能接受的。跳躍表就是綜合了數組和鏈表的特色,使用空間換時間的方法,提高了查詢的效率。數據結構