使用给定的任意N个元素构建二叉搜索树的最坏情况时间复杂度是什么?
我认为 N个给定元素与元素之间存在差异,因此会产生总N个元素的BST 。
在前一种情况下,它是 O(n log n),在第二种情况下是 O(n ^ 2)。我是对的吗?
答案 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)
。