2016-01-23 36 views
3

此代码创建一个平衡二叉搜索树,该树是两个平衡二叉搜索树的交集。查找调用多个过程的过程的增长顺序

(define (intersection-tree t1 t2) 
    (list->tree (intersection-set (tree->list-2 t1) (tree->list-2 t2)))) 
  • 树形>列表-2变平树成有序集。它需要Theta(N)。
  • 交集 - 设置两套用两个输入集创建一个新集。它需要Theta(N)。
  • list-> tree将新创建的集合转换为平衡二叉搜索树。采取Theta(N)。

也就是说,我有一个调用4个过程的过程,需要Theta(N)(list-> tree,intersection-set,two tree-> lists)。我的猜测是所有这些需要4N。忽略常数因素它变成Theta(N)。说交叉树过程需要Theta(N)是否正确?

+0

是的,它是正确的。 – Renzo

回答

2

你的猜测是正确的,因为在你的函数中,每个子任务只用一次Theta(N)执行一次,交集树过程需要Theta(N)。