数据结构中的搜索树、集合与映射
1. 二叉搜索与二叉搜索树
二叉搜索树在大多数情况下能提供高效的操作,但在最坏情况下性能不佳。存在多种平衡二叉搜索树,其插入和删除操作可使树保持丰满而非细长,从而避免最坏情况的糟糕表现,不过这里不深入研究平衡二叉搜索树。
1.1 二叉搜索算法
二叉搜索是一种用于搜索有序列表的高效算法,平均和最坏情况下的复杂度均为 $O(\lg n)$。可以用二叉树来表示二叉搜索的工作过程,从而得到一棵完整的二叉搜索树。
| 情况 | 比较次数 |
|---|---|
| 最佳情况 | 1 次(首次检查元素即为目标) |
| 最坏情况 | $\lfloor\lg 1000000\rfloor + 1 = 20$ 次 |
| 平均情况 | 约 $\lfloor\lg 1000000\rfloor = 19$ 次 |
递归可以从二叉搜索算法中移除而无需使用栈,因为二叉搜索算法是尾递归,即每次调用自身时,递归调用是其最后一个操作。
如果用一个包含 100 个名字的有序列表构建二叉树以模拟二叉搜索,得到的树的高度为 $\lfloor\lg 100\rfloor = 6$。
与 ArrayList 和
超级会员免费看
订阅专栏 解锁全文
2653

被折叠的 条评论
为什么被折叠?



