推 yupog2003: (b)我在想DFS和BFS的time complexity都是O(V+E),應該 01/18 15:41
→ yupog2003: 差不多快? 01/18 15:42
→ yupog2003: BFS可以拿來找connected component,每個connected 01/18 15:44
→ yupog2003: component就當作是一個disjoint set,一個disjoint 01/18 15:45
→ yupog2003: set就視為一個equivalence class,阿Union/Find也是可 01/18 15:45
→ yupog2003: 以拿來找disjoint set,雖然很不嚴謹,但寫的當下想法 01/18 15:46
→ yupog2003: 是這樣 01/18 15:46
→ yupog2003: (c)如果union/find用上union by rank和path compressio 01/18 15:51
→ yupog2003: 應該可以比DFS消耗更少空間 01/18 15:51
推 Transfat: 我的想法跟樓上一樣,如果用Union-and-find的空間會稍微 01/18 18:09
→ Transfat: 少一些,就O(n)而已吧 01/18 18:09
→ yupog2003: 交大資演100分鐘要寫60題,我好多都沒有想得很完整... 01/18 18:16
推 Transfat: 交大資演寫得完也是很猛QQ 01/18 18:28
推 weilun911: 寫交大時間都不夠用QQ 01/18 18:33
推 Transfat: 我想了想又覺得(c)的說法和空間複雜度可能還比較沒關? 01/18 18:42
→ Transfat: 因為Graph很大,E和V都很多,所以如果用BFS/DFS要O(|V|+ 01/18 18:44
→ Transfat: |E|),如果用Union-by-rank就只要O(log(N)),算是縮小了不 01/18 18:44
→ Transfat: 少time complexity,所以可能是time complexity的問題 01/18 18:44
→ Transfat: 晚點再研究看看 01/18 18:44
→ yupog2003: 當初我也有想到這個問題,但我是想說recursive會用到 01/18 18:49
→ yupog2003: stack,如果recursive次數越少用的空間也越少,所以也 01/18 18:49
→ yupog2003: 可以算是跟space complexity有關? 01/18 18:50
推 Transfat: 有相關,可是題目看不出來recursive次數少不少吧(?) 01/18 18:56
→ Transfat: 因為他沒給圖,如果是一條長長的graph (像skew-tree) 01/18 18:57
→ Transfat: 這樣space complexity就會滿低,不過這題純粹只有說一個 01/18 18:57
→ Transfat: 大Graph 01/18 18:57
→ yupog2003: 也是沒錯拉...我這樣有點自己腦補了... 01/18 21:12