红黑树对比AVL树

都是平衡二叉树。JDK热衷使用红黑树而非AVL树。

对比:

1、AVL树是严格平衡的,红黑树非严格平衡,

     这点看查询效率AVL树 略好于 红黑树,但都是O(lon n)数量级

2、AVL树添加时最多2次旋转操作达到平衡,而删除时,可能删除节点以下的所有节点都需要旋转-> O(lon n)次

      红黑树最多3次旋转可平衡。

      这点看 红黑树效率更好,更平衡

 

综上所看

1、如果明确读多写少场景,使用AVL树较优

2、其他情况从性能和稳定性综合判定,优先使用红黑树

      JDK中TreeMap HashMap也是选择了红黑树而非AVL树

posted @ 2020-06-10 23:13  蓝天随笔  阅读(532)  评论(0)    收藏  举报