Notes about Skip List
Overview
可以看下视频Skip List Explained。
核心思想
跳跃表的核心思想非常直观:为有序的链表增加多级“索引”,来加速查找过程。它是对“二分查找”思想的一种链表实现。
Why
对于一个有序链表,查找一个元素只能从头到尾遍历,时间复杂度是 O(n),效率很低。我们希望能像数组的二分查找一样,实现 O(log n) 的查找效率,但链表不支持随机访问。
跳跃表通过“空间换时间”的策略,完美地解决了这个问题。
结构
跳跃表由多层链表组成:
- 最底层(第0层):是一个包含所有元素的有序单链表
 - 第1层:是底层链表的一个“索引”子集,它只包含底层中的部分节点,节点密度更低
 - 第2层:是第1层索引的索引,节点更稀疏
 - 以此类推… 直到最顶层
 
每一层都是一个有序的链表,高层链表是低层链表的“快速通道”。

参考资料:
- deepseek prompt:简要介绍下跳跃表这个数据结构
 - Skip List Explained
 - Skip Lists CMSC 420