2013-03-23 71 views
4

我想知道二叉搜索树的一些复杂性。二叉树复杂度

我找不到完整的信息。我想知道在二叉搜索树

  1. ,增加了对以下操作的复杂性/插入元素
  2. 删除元素
  3. 找到一个元素(因为我知道这个人是O(log(n))
+0

这取决于你的算法,它与数据结构没有太大关系。 – m4573r 2013-03-23 12:36:17

+0

二叉树一般?还是二进制搜索树?还是一些特定的自我平衡BST? – delnan 2013-03-23 12:36:31

+0

Wiki中有关[Binary Trees](http://en.wikipedia.org/wiki/Binary_tree)的一切。 – deepmax 2013-03-23 12:37:10

回答

10

插入,删除,并在二叉搜索树搜索是:

  • O(N)在最坏的情况下;
  • O(log(N))在一般情况下。
7

如果你有平衡二叉树,所有三个复杂性将是O(log(N))。如果你不平衡树,它可能是O(N)

0

搜索有效。但是,不平衡的结构(通常是这种情况)会导致O(N)用于搜索/插入/删除操作。这就是为什么二进制堆或其他类型的平衡树优先于O(log n)。 。