对于正常的链表来说,如果需要查找某个数据时,需要从头到尾遍历链表,效率比较低。
而跳表就同时维护了多个链表,并且这些链表是分层的,用来快速查找数据。
最底层的链表维护了跳表内所有的元素,每上面一层链表都是下面一层链表的子集,
链表越往上数据越少。
跳表内所有元素都是排序的,这样在查找时,可以先从顶层链表查找,
一旦发现被查找的元素大于当前链表的取值,就会转入下一层链表继续查找。
也就是说在查找过程中,是跳跃式搜索。
因为持有多个链表,也就是说使用了空间换取时间的算法。
附上一张图片,来源于网络
查找18这个元素时的查找路径

网友评论