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

作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   Chenyi_li  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示