Algorithm 有效地重新平衡由2^n-1个节点组成的树?

Algorithm 有效地重新平衡由2^n-1个节点组成的树?,algorithm,big-o,binary-search-tree,avl-tree,asymptotic-complexity,Algorithm,Big O,Binary Search Tree,Avl Tree,Asymptotic Complexity,我偶然发现了这个问题: 给出一个有2^n-1个节点的二叉搜索树,给出一个将其转换为自平衡树(如avl或RB树)的有效算法。并分析其最坏情况下的运行时间作为n的函数 我认为对于n个节点,最有效的算法是o(n)时间,但是2^n-1节点是棘手的部分。你知道接下来的比赛时间是多少吗 如果您已经有了解决此问题的线性时间算法,将非常感谢您的帮助,太好了!这样想吧。设m=2n-1。如果您有一个平衡树的算法,并且在节点数量上以时间线性方式运行,那么在这种情况下,您的算法在时间O(m)上运行,这非常好。不要让指数

我偶然发现了这个问题: 给出一个有2^n-1个节点的二叉搜索树,给出一个将其转换为自平衡树(如avl或RB树)的有效算法。并分析其最坏情况下的运行时间作为n的函数

我认为对于n个节点,最有效的算法是o(n)时间,但是2^n-1节点是棘手的部分。你知道接下来的比赛时间是多少吗


如果您已经有了解决此问题的线性时间算法,将非常感谢您的帮助,太好了!这样想吧。设m=2n-1。如果您有一个平衡树的算法,并且在节点数量上以时间线性方式运行,那么在这种情况下,您的算法在时间O(m)上运行,这非常好。不要让指数时间吓到你;如果在大小为2n-1的输入上运行时为O(2n),那么您的运行效率很高

对于特定的算法,您似乎已经知道了一个,但如果您还没有听说过,请查看,它以最佳方式重建树,并在线性时间和恒定空间中进行重建