Java面试题汇总--柚子真好吃
一、Hashmap为什么不用平衡树?
- AVL树与红黑树
a. 插入情况:AVL树与红黑树,最多仅需要2次旋转,即可实现平衡。
b. 删除情况:AVL在删除一个节点时有可能需要平衡该节点到根节点上所有节点的平衡(时间复杂度为O(logN))。而红黑树最多仅需要3次旋转即可达到平衡状态(时间复杂度为O(1))
c. 查询操作:AVL的平衡度要高于红黑树(红黑树的叶节点深度高于AVL树),故AVL树在进行查询时性能要高于红黑树。
d. 保持平衡:AVL树高度平衡,在大量插入和删除节点的场景下,AVL为了保持平衡需要调整的频率会更高。 - 答案:
a. 红黑树与AVL树在查询上,都是通过二分查找,效率差不多。
b. 红黑树对于插入删除等操作效率提高很多。AVL树进行插入删除等操作时,要达到绝对的平衡性,调整的频率过高,这样就降低的使用的效率。