构建具有N个给定元素的BST是O(n lg n)吗?

时间:2016-08-31 01:36:07

标签: algorithm binary-search-tree

使用给定的任意N个元素构建二叉搜索树的最坏情况时间复杂度是什么?

我认为 N个给定元素元素之间存在差异,因此会产生总N个元素的BST

在前一种情况下,它是 O(n log n),在第二种情况下是 O(n ^ 2)。我是对的吗?

1 个答案:

答案 0 :(得分:3)

如果Binary Search Tree (BST)不完美平衡,则最差情况时间复杂度为O(n^2)。通常,BST是通过重复插入构建的,因此最坏的情况是O(n^2)。但是,如果您可以对输入进行排序(在O(nlogn)中),则可以在O(n)中构建输入,从而导致O(nlogn)的整体复杂性

BST为self-balancing,即使我们重复插入,最差情况时间复杂度为O(nlog n)