Redis的有序集合Zset为啥用跳表不用二叉树
跳表和红黑树查找的时间复杂度都是logN,插入删除也是logN。范围查找貌似也都是 O(k + log n),其中 n 是树中节点的数量,k 是满足范围条件的节点数量。但是实现起来跳表要简单很多。
1.zset有个很核心的操作叫范围查找,我们要查找某个范围区间的元素。跳表可以做到logN时间复杂度内的快速查找,找到区间的起点,往后遍历就可以了。红黑树范围查找的效率没跳表高。
2.跳表的实现比红黑树简单,容易实现。可以有效的控制跳表的索引层级,来控制内存的消耗。。
转载:https://www.bilibili.com/video/BV1kh411x7Jc/?spm_id_from=333.337.search-card.all.click&vd_source=46d50b5d646b50dcb2a208d3946b1598
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)