zoukankan      html  css  js  c++  java
  • Redis的zset底层数据结构,为什么用跳跃表而不用红黑树?

       共同点:红黑树和跳表的插入、删除、查找以及迭代输出的时间复杂度是一样的。

    ♣跳表在区间查询的时候效率是高于红黑树的,它查找时,以O(logn)的时间复杂度定位到区间的起点,然后在原始链表往后遍历就可以了 ,其它插入和单个条件查询,更新两者的复杂度都是相同的O(logn)。

    ♣跳表的代码实现相对于红黑树而言更容易实现。

    ♣跳表更加灵活,它在并发环境下可以通过改变索引构建策略,有效平衡执行效率和内存消耗。红黑树的平衡通过左旋转和右旋转来实现平衡。


      读后有收获,小礼物走一走,请作者喝咖啡。

    赞赏支持

  • 相关阅读:
    数据库学习之范式理解
    Java学习之网络编程
    Hadoop学习之HBase和Hive的区别
    erlang 查看进程相关信息
    erlang web socket参考。
    erlang启动参数
    调试信息和错误信息。
    进程监控树。
    erlang的进程池。
    日志系统。
  • 原文地址:https://www.cnblogs.com/east7/p/14880026.html
Copyright © 2011-2022 走看看