Python微信订餐小程序课程视频
https://blog.csdn.net/m0_56069948/article/details/122285951
Python实战量化交易理财系统
https://blog.csdn.net/m0_56069948/article/details/122285941
简介
有序的数组可以使用二分查找的方法快速检索一个数据,但是链表没有办法使用二分查找。
对于一个单向链表来说,即使链表中存储的是有序的数据,但如果想要从中查找某个数据时,也只能从头到尾遍历链表,其时间复杂度是 O(n)O(n)O(n)。
为了提高链表的查询效率,使其支持类似“二分查找”的方法,对链表进行多层次扩展,这样的数据结构就是跳表。跳表对标的是平衡树,是一种提升链表插入、删除、搜索效率的数据结构。
首先,跳表处理的是有序的链表,一般使用双向链表更加方便。
然后,每两个结点提取一个结点到上一级,提取的这一层被称作为索引层。
这时候,当想要查找 19 这个数字,可以先从索引层开始查找;当到达 17 时,发现下一个结点存储 21 这个数字,则可以确定,想要查找的 19 肯定是在 17 到 21 之间;这时候可以转到下一层(原始链表)中查找,快速从 17 开始检索,很快就可以查找出 19 这个数字。