【发布时间】:2019-03-06 00:25:35
【问题描述】:
问题来了:
考虑如下排序算法: I. 将给定的输入 A[1], A[2], ..., A[n] 以给定的顺序插入到二叉搜索树 T 中,从一棵空树开始;二、对 T 进行中序遍历,以非降序输出元素。 (a) 算法的最坏情况时间是多少? (b) 算法的最佳案例时间是多少?
我的回答:
我在t(n) = 2(n/2) + n 中创建了一个 BST,因为我们必须遍历每个单独的元素,然后我还在 t(n) = 2(n/2) + n 中打印出 BST 顺序,因为我们必须再次遍历每个元素。然后我将时间复杂度以t(n) = 4(n/2)+2n 结尾。
按照Master的方法,符合案例一,设为θ(n^2)。如果是θ(n^2),这将回答问题的 a 和 b。我不明白怎么会有更好的表现,或者在那种情况下表现更差。
这是一个棘手的问题吗?
【问题讨论】:
-
不应该将一个元素插入平衡二叉树是
log_2 n。并且不应该通过插入排序序列创建的二叉树导致看起来像链表的树(插入总是在末尾,因此单个项目的 O(n) )?
标签: recursion big-o binary-search-tree complexity-theory traversal