線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2219
推到 Plurk!
推到 Facebook!

請問二元搜尋樹插入法

尚未結案
pav0914
一般會員


發表:4
回覆:6
積分:2
註冊:2004-01-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-10 15:28:39 IP:220.130.xxx.xxx 未訂閱
問一: 一個有n個數字的指定集合,首先建構一顆包含這些數字的二元搜尋樹(使用tree-insert 一個一個地重複地插入這些數字),然後使用樹內散步來印這些數字,這個排序演算法的最糟與最佳情況執行時間是什麼? 那概要描述在文字中的HASH-DELETE的擬程式碼,並且修改HASH-INSERT來處理特殊數值DELETED是指什麼呢? 小佩
------
小佩
gmobug
一般會員


發表:10
回覆:28
積分:12
註冊:2004-02-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-04 23:22:17 IP:221.169.xxx.xxx 未訂閱
其實我自己對這方面不太懂,但是書上有看到相關的: (以下轉載自松崗-演算法導論-蕭世文譯) p.12-5 //---------------------------------------------轉載開始 理論12.1 如果x是一棵有n個節點的子數的根,則呼叫INORDER-TREE-WALK(x)花費θ(n)的時間。 ******************************** 證明 讓T(n)表示INORDER-TREE-WALK在一棵有n個節點的子數的根部上被呼叫時所花的時間。INORDER-TREE-WALK在每一棵空子樹(測試x≠NIL)上花費一個小量,常數數目的時間,所以T(0)=c其中c是某個正值常數。 對n>0,假設INORDER-TREE-WALK在一個節點x上被呼叫,x的左邊子樹有k個節點,而x的右邊子樹有n-k-1個節點。執行INORDER-TREE-WALK(x)的時間是T(n)=T(k) T(n-k-1) d,其中d是反映執行INORDER-TREE-WALK(x)所需時間,不包函花在遞迴呼叫上的時間,的某個正值常數。 我們使用取代方法來顯示T(n)=θ(n)來證明T(n)=(c d)n c。對n=0,我們有(c d)˙0 c=c=T(0)。對n>0,我們有: T(n)=T(k) T(n-k-1) d =((c d)k c) ((c d)(n-k-1) c) d =(c d)n c-(c d) c d =(c d)n c 此完成證明 //------------------------------------------------轉載結束 看起來像是要帶進去算,但是實際上應該還要加上遞迴呼叫花掉的時間,因為樹內散步是個遞迴演算法。
pav0914
一般會員


發表:4
回覆:6
積分:2
註冊:2004-01-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-21 00:58:43 IP:220.130.xxx.xxx 未訂閱
真不好意思...因遲遲進不了信箱...大致就是這樣代進去...謝謝你的幫忙..願你天天快樂.... 小佩
------
小佩
系統時間:2024-05-02 23:10:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!