Re: [理工] 資料結構思考問題

作者: HiltonCool (野獸瘋)   2014-06-22 01:52:01
※ 引述《APE36 (PT鄉民)》之銘言:
: 1.
: 敘述並說明你的理由,旅行推銷員問題(Travelling Salesman Problem,)
: 是一個NP-complete 問題,而且至今尚未找到演算法可以解出此問題。
Ans:因為還沒唸阿狗,所以此題無解XD
: 2.
: 證明每一棵二元樹可由它的前序和中序順序來決定其唯一的結果。
Ans:(1)利用數學歸納法對點數做歸納
當點數=0時,前序與中序皆為空
∴可唯一決定此二元樹為空樹
∴初值成立
(2)令點數≦(n-1)時,此定理成立
(3)當點數=n時,從前序順序中找出第1個點,令此點為D,則此點必為樹根
再從中序順序中找出D之位置,令D左邊的子字串為TL*,D右邊的子字串為TR*
則TL*與TR*必為左、右子樹的中序順序 (中序:【 TL* 】D【 TR* 】)
令TL*長度為NL,TR*長度為NR,則NL與NR分別代表左、右子樹的點數
再回到前序順序中,從第2個點開始,取出NL長度的子字串,令為TL'
後面接著剩餘NR長度的子字串,令為TR'
則TL'與TR'分別代表左、右子樹的前序順序 (前序:D【 TL'】【 TR'】)
\NL/ \NR/
∵NL與NR均≦(n-1)
∴由(2)之假設知:
給予TL*與TL'可決定唯一的左子樹
給予TR*與TR'可決定唯一的右子樹
∴左、右子樹皆唯一
∴整顆二元樹唯一
因此,由(1)(2)(3)及數學歸納法得證
[補充](1)給予前序(後序)與中序可決定唯一的二元樹
(2)給予前序與後序無法決定唯一的二元樹
: 3.heap sort 如何變成穩定的排序呢?
: (關於這個小題,有什麼思考的方向呢??)
Ans:若給予的資料值皆相異,則Heap Sort會變成穩定排序
(因為是否為穩定排序主要是決定於是否有相同的資料(即是否有不必要的swap)
若給予的資料值皆相異,則所有排序方法皆為穩定排序
若給予的資料值存在至少兩筆相同,則是否為穩定排序同原排序方法的定義)
作者: FRAXIS (喔喔)   2014-06-22 07:15:00
Travelling Salesman Problem明明就可以解 這題目在問啥3的話 增加一個sencondary key value就可以了
作者: HiltonCool (野獸瘋)   2014-06-22 19:25:00
樓上的方法也是一個好方法!

Links booklink

Contact Us: admin [ a t ] ucptt.com