为何二叉树如此重要,而不是三叉树四叉树?
性能对比:
- 数组:查找块O(1),增删慢O(n)
- 链表: 查找慢O(n),增删块O(1)
- 二叉搜索树BST: 查找快、增删快。二叉树可以使用二分法算法
平衡二叉树
- BST如果不平衡,那就成了链表了,无法做到最优秀
- 所以要尽量平衡,即平衡二叉搜索树 BBST
- BBST增删查,时间复杂度都是O(logn),即树的高度
总结:
- 数组、链表都各有缺点
- 特定的二叉树,即平衡二叉树BBST 可以让整体效果最优
- 所以我们说二叉树很重要,而不是三叉四叉树,因为无法使用二分算法实现最优解