【发布时间】:2010-03-02 23:16:11
【问题描述】:
使用算法 Tree-Insert(T, v) 将新值 v 插入二叉搜索树 T,以下算法通过将数组的给定部分中的每个值重复插入树中来生成二叉搜索树:
Tree-Grow(A, first, last, T)
1 for i ← first to last
2 do Tree-Insert(T, A[i])
如果树最初是空的,并且数组部分的长度(即last-first+1)为n,则上述算法的最佳情况和最坏情况的渐近运行时间是多少,分别?
当 n = 7 时,给出算法的最佳情况实例(作为包含数字 1 到 7 的数组,按特定顺序)和最坏情况实例(以相同的形式)。
如果数组已排序且所有值都不同,则想办法修改 Tree-Grow,使其始终构建最短的树。
修改后算法的最佳情况和最坏情况的渐近运行时间分别是多少?
【问题讨论】:
-
到目前为止你得到了什么?
-
这应该很容易通过快速浏览你的算法书来解释。如果它与我在大学时的相同,则有一整节包含上述数据。
-
@Russel:如果我不得不猜测的话,他到目前为止所做的是一个带回家的测试,并且今天已经有四个用户名。
-
请停止标记此
possible-homework,这不是标记的用途。请参阅:meta.stackexchange.com/questions/34503/… 和 meta.stackexchange.com/questions/10811/… -
这是一个直截了当的家庭作业问题或考试问题。哇。 IMO 它应该被关闭。
标签: algorithm arrays data-structures binary-tree performance