skiplist跳表 时间复杂度算式

跳表尺寸符号约定:

skiplist跳表 时间复杂度算式
文章图片
符号约定
  1. 元素节点个数N, 层高h,
  2. 最高层为第h层,节点列表的上一层为第1层
一些提示
因此 层i节点个数为: $N 2^{-i}$
跳表时间复杂度算式
跳表每一层所需步骤
每一层都是有序的,在有序的第i层上进行二分查找 所需要的步骤: $$
层i所需步骤=log(层i节点个数)=log(N 2^{-i}) = logN - i
$$ #### 跳表各层所需总步骤 > 总步骤 为 各层所需步骤之和: $$ \sum_i^h(层i所需步骤 )=\sum_i^h(log(N 2^{-i}) ) = \sum_i^h(logN - i ) =h log(N)- \sum_i^h( i )=h log(N)-\frac{h}{2}(h+1) $$
小结
即 跳表时间步骤为: $h log(N)-\frac{h}{2}(h+1)$ ,其中:N为节点个数,h为层高
【skiplist跳表 时间复杂度算式】$\frac{h}{2}(h+1)$ 是与输入规模N无关的, 且层高h通常不大,可见 跳表时间复杂度为 O(h logN)

    推荐阅读