Skip to content
进阶

一句话答案

跳表是多层有序链表,逐层跳跃实现 O(logn) 查找,比红黑树实现简单且范围查询方便。

核心要点

结构: 多层索引链表,上层是下层的子集,从最高层开始查找

为什么 Redis 用跳表不用红黑树: 1.实现简单 2.范围查询方便(遍历链表) 3.并发友好 4.空间可调

时间: 查找/插入/删除 O(logn),空间 O(n)

追问与易错

追问方向:

  • 跳表的空间复杂度?
  • 跳表并发怎么处理?
  • 跳表和平衡树的对比?

易错点:

  • ❌ 跳表查找一定是 O(logn)——期望值随机性保证
  • ❌ 跳表不能范围查询——链表天然支持

💡 记忆锚点

跳表像书的多级目录:底层是完整内容(全部有序节点),上面一层层是"稀疏索引",查找时从最高层的大目录跳到章节目录再到具体页(逐层下降,O(logn))。Redis用跳表不用红黑树的四个理由:实现简单(链表比树好写好调试)、范围查询天然支持(沿链表走就行)、并发友好(局部锁)、层数可调。