构建平衡二叉搜索树的计算复杂度(时间和空间复杂度)是多少?
答案 0 :(得分:1)
使用n
个节点构建BST的时间复杂度为O(n*log(n))
。
为什么?您需要遍历每个n
节点才能将其插入树中。现在插入一个节点将需要进行log(n)
比较。
因此,在二进制搜索树中插入n
个节点的总时间复杂度为O(n*log(n))
答案 1 :(得分:1)
将一个节点插入平衡的二进制搜索树需要O(log n)时间,因此可以在O(n log n)时间内插入n个节点来构建树。
仍有待证明,没有更好的方法来构建树-例如,将元素插入堆中还需要O(logn)时间,但是有a cleverer algorithm在O(n)时间内建立大小为n的堆。但是,Ω(nlogn)是任何比较排序算法的下限,因此,没有一种渐近更快的构建BST的方法,因为您可以先构建一个BST,然后traversing it in order进行比较排序