推 OppOops: 第一題要說明d是如何得知的, d和radix的選擇有何關係01/18 18:37
→ OppOops: 第二題說明m的input string長度為k, 則m至少為2^k01/18 18:39
→ OppOops: 第三題T(n) = O(1)+O(1)+O(n)+O(n)+O(n)+T(3n/4) = O(n)01/18 18:58
→ lemonsheep: 可是第一題是要O(|S|),如果|S|=n^1/2應該就不是O(n)?01/18 21:09
→ OppOops: 對 不會是O(n)01/18 21:32
→ lemonsheep: 這樣用radix sort不一定可以確保O(|S|)吧?01/18 21:39
推 OppOops: 確實O(d|S|)不會是O(|S|), 所以d要選擇正確01/18 21:42
→ OppOops: d想辦法讓它是常數... 如果radix有選好01/18 21:43
→ OppOops: 提示: O( d * (|S| + radix) ), radix跟n有關01/18 21:45
感謝 O 大的解釋!用多個回合限制範圍再說明範圍的取法這樣我了解了
第三題我再想想看 感恩
→ lemonsheep: 恩恩了解 對原PO取法有疑問而已 感謝 01/18 21:52
→ jerry031181: 我是用counting sort 讓range在n^1/2內做4回合01/18 22:03
→ jerry031181: b的話說明一下儲存m只需logm的大小 所以input size01/18 22:05
→ jerry031181: O(nm)=O(n*2^(logm)) 不為polynomial time01/18 22:06
感謝 j 大的說明!
※ 編輯: kev72806 (49.214.64.128), 01/18/2016 22:33:46
推 dslin: 想請問k大第2題的演算法怎麼寫呀?? 01/19 11:38