一、AVL树:
优点:查找、插入和删除,最坏复杂度均为O(logN)。实现操作简单
如过是随机插入或者删除,其理论上可以得到O(logN)的复杂度,但是实际情况大多不是随机的。如果是随机的,则AVL 树能够达到比RB树更优的结果,因为AVL树的高度更低。如果只进行插入和查找,则AVL树是优于RB树的,因为RB树 更多的优势还是在删除动作上。
缺点:1)借助高度或平衡因子,为此需要改造元素结构,或额外封装-->伸展树可以避免。
2)实测复杂度与理论复杂度上有差距。插入、删除后的旋转成本不菲。删除操作后,最多旋转O(logN)次,(Knuth证明,平 均最坏情况下概率为0.21次),若频繁进行插入/删除操作,得不偿失。
3