对于平衡和非平衡BST,将节点插入二叉树的时间复杂度是否相同?
答案 0 :(得分:0)
对于平衡树,insert需要O(log(n)),这是从根到叶子的节点数。
如果树是不平衡的,它可能是一条长链,这意味着插入可能是n
步的最坏情况,这意味着O(n)
答案 1 :(得分:0)
不,如果插入顺序遵循某些特定模式,则时间复杂度可能不同。考虑到所显示的努力程度,我不打算完全回答它,但请考虑以下因素:
在BST中插入一千个元素,从最小到最大。插入最后一个时需要进行多少次比较?
答案 2 :(得分:0)
怎么可能一样?
不一样。
例如
像这样的BST
5
/\
3 7
/\ /\
2 4 6 8
如果你想插入一个节点(1),你将遍历3个节点(5-3-2)。
现在针对不平衡的情况:-(最糟糕的情况可能是)
8
/
7
/
...
/
2
这里要插入1
,您需要遍历7个节点。
为了避免这种偏斜,引入了平衡搜索树。您可以查看BST的缺点,然后您可以查看AVL树或RB树。你会得到它的不同之处。
对于高度平衡的BST,搜索的复杂度为O(logn)
。但对于最坏情况下的不平衡BST,可能需要O(n)
。