二叉搜索树(BST)


二叉树

二叉树是最简单的一种树形结构,每个节点最多有两个分支

二叉搜索树(Binary Search Tree)

二叉搜索树,又叫二叉排序树,是一种有序的二叉树,每个节点的左边所有节点的值都比它小,右边所有的值都比它大

二叉搜索树即有链表快速插入与删除的特点,又有快速查找的优势

二叉搜索树查找某个元素所需要的最大次数等于树的层高。

假设节点数为n,层高为h,每个节点最多衍生2个子节点。因此
$$
\begin{align}
n &= 2^0 + 2^1 + 2^2 + … 2^{h-1} \\
2n &= 2^1 + 2^2 + … 2^{h} \\
两式相减得: n &= 2^h - 1 \\
h &= \log_2 (n+1)
\end{align}
$$
所以时间复杂度约为$O(\log_2 n)$

但极端情况下,二叉搜索树所有节点都集中在一边,二叉树退化为线性结构,此时层高h等于节点数n,时间复杂度为O(n)

文章作者: 周君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 周君 !
评论