为了解决链表中查询时间为O(n)的问题,需要为链表查询速度加速,所以产生了跳表
中心思想:升维,空间换时间
常见的链表是一维的,在链表上再加个索引就变成二维的,如图:


每隔一个增加一个索引,那么查询时间就少了一半,同理:


索引越多,查询的时间越少,这就是空间换时间,如果最高级有两个索引点的话总共增加log2(n)-1个级,跳表查询时间复杂度为O(logn),空间复杂度为O(n),当然这个O(n)肯定比原始的大。
为了解决链表中查询时间为O(n)的问题,需要为链表查询速度加速,所以产生了跳表
中心思想:升维,空间换时间
常见的链表是一维的,在链表上再加个索引就变成二维的,如图:
每隔一个增加一个索引,那么查询时间就少了一半,同理:
索引越多,查询的时间越少,这就是空间换时间,如果最高级有两个索引点的话总共增加log2(n)-1个级,跳表查询时间复杂度为O(logn),空间复杂度为O(n),当然这个O(n)肯定比原始的大。