为什么O(N Log N)构建二进制搜索树?

时间:2011-02-28 13:36:46

标签: binary-tree

准备考试。这不是功课问题。

我认为最坏的情况是O(N ^ 2)来构建BST。 (每次插入req N-1比较,你总和所有的比较0 + 1 + ... + N-1~N ^ 2)。这是BST倾斜的情况。

(平衡)BST的插入是O(log N),那么为什么最好的情况是O(N logN)来构造树?

我猜最好的猜测 - 因为单个插入是log N,而不是总结所有插入以某种方式给我们N log。

谢谢!

1 个答案:

答案 0 :(得分:9)

正如你所写的:)单个插入是O(log N)。因为N元素的加权树高是log N,你需要记录N个比较来插入单个元素。您需要进行N次插入。所以N * logN。