Re: [理工] [DS]-quicksort和matrix-chain
※ 引述《bernachom (Terry)》之銘言:
: 太久沒看,有點忘了
: 請教一下quicksort和matrix-chain
: 1.
: http://ppt.cc/7@j(
: http://ppt.cc/0Kan
(a)
用代入法最快:
T(n) = T(n-1) + θ(n)
= T(n-2) + θ(n-1) + θ(n)
= ...
= T(0) + θ(1) + θ(2) + ... + θ(n-1) + θ(n)
= θ(1+2+...+n)
= θ(n(n+1)/2)
= θ(n^2)
(b)
quick sort 是unstable的sort
stable的定義就是同樣的數字如果排序後順序不會變動
而quick sort會把整串數字中的前段跟後段的數字作交換
所以順序有可能會被變動
你可以自己舉個例子就看的出來了
(c)
in-place sort的定義:
In-place sort is a sorting algorithm that does not use any extra space
beyond that needed to store the input.
簡單來說就是該演算法除了輸入資料所佔的記憶體空間外
額外用到的記憶體的數量為常數個(與輸入大小無關)
基本上quick sort應該是屬於in-place
因為quick sort除了swap元素時可能會用到一個額外記憶體外
不會用到跟輸入大小有關的記憶體來重新儲存原本的元素們
: 2.
: http://ppt.cc/G-,n
這題我不知道詳細解說要怎麼說
不過簡單來說
我覺得是用這個RECURSIVE-MATRIX-CHAIN比較有效率
畢竟把所有可能矩陣相乘的方法全部列舉出來再比較肯定是比較慢
這個RECURSIVE-MATRIX-CHAIN基本上是用類似DP的方法
但可惜的是這演算法是用recursive
所以效能其實還是沒有很好
因為同樣的"子問題"會重複再算好幾次
(他這個演算法是由上而下運算)
比較好的方法應該是由下往上運算(真正的DP寫法)
如此一來"子問題"就不需要重複運算
可以讓效能變更好
...離題了
總之這題還是用RECURSIVE-MATRIX-CHAIN比全部列舉出來好.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.139.83
推
12/15 18:32, , 1F
12/15 18:32, 1F
→
12/15 18:33, , 2F
12/15 18:33, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):