这是附加在二叉搜索树从实现BST添加
private IntTreeNode add(IntTreeNode root, int value) {
if (root == null) {
root = new IntTreeNode(value);
} else if (value <= root.data) {
root.left = add(root.left, value);
} else {
root.right = add(root.right, value);
}
return root;
}
我明白为什么在O(log n)的运行。 以下是我分析它。 我们有n的树的大小。 如何2,或半切许多切口,会减少这种树向下的尺寸为1。因此,我们有表达式n(1/2)^ X = 1,其中1/2表示每个半切口。 解决这个为X,我们的log 2(X),所以LOGN来自于搜索。
下面是演讲幻灯片堆 ,讨论运行时间不平衡的二进制搜索。
我的问题是,即使二叉搜索树是不平衡的,不会用于分析添加的运行时同样的策略的工作? 你有多少削减已经做出。 不会运行时仍然是O(log n)的,而不是为O(n)? 如果是这样,有人可以证明的,为什么它会为O(n)的数学吗?