2016-01-23 43 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)。