algorithm - BST O(NLogN) 构建证明

标签 algorithm performance time binary-tree binary-search-tree

我正在尝试学习测试,我知道单次插入是 O(logn) 并且树的高度是 n,因此比较将使时间成为 Ω(n log n)。

我如何证明,给定一个包含 n 个元素的未排序数组 A,构建 BST 所需的时间在最坏情况下为 Ω(n log n)。

最佳答案

遍历 BST 可以在线性时间内完成,所以如果你可以比 O(n * log(n)) 更快地从未排序的数组构建 BST,这意味着你可以比 O(n * log(n)) 并且我们知道 this can't be done除非您有关于被排序元素的额外信息。

另一方面,您可以在 Ω(n*log(n)) 中对数组进行排序,并且可以在线性时间内从排序的数组构建 BST(例如构建“类列表”树)。

关于algorithm - BST O(NLogN) 构建证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47784617/

相关文章:

performance - 为什么 numpy.dot 与矩阵乘法的这些 GPU 实现一样快?

c - 现在实现平板分配器值得吗?

C++ UnixTimestamp 和可读时间格式

time - Autosys R11 作业依赖与依赖作业运行时条件

解NxNxN魔方的算法

php - 人气算法

c++ - (*i).member 是否比 i->member 效率低

r - 使用 R 绘制润滑周期

algorithm - 如何查找位置点集是否包含距离大于 1 公里的点

algorithm - 回溯算法中操作顺序的重要性