推 softwind:switch case ? 應該是還是 O(n)吧? 06/25 01:50
→ yauhh:沒差啦,反正是小事 06/25 02:52
→ yauhh:原po只是問怎麼寫,給個方向;但一堆人拼命給越快越好的作法, 06/25 02:54
→ yauhh:這一點我很不能理解. 先給一個適當的作法不就可以了嗎 06/25 02:55
→ yoco315:and why did you remark you algo is O(1) -_-|| 06/25 03:12
→ yoco315:(which actually not...) 06/25 03:12
→ yoco315:not to mention the solution is complicated O_O 06/25 03:23
推 Fenikso:寫死在code裡面的switch case就算有1000000項也是O(1) 06/25 03:42
→ yoco315:It depends on the case value and the compiler. 06/26 00:30
推 Fenikso:no, 1000000 is a constant 06/26 00:37
推 softwind:對於寫死的switch是O(1) 我比較有興趣 compiler有說明嗎? 06/26 00:39
→ softwind:或是哪家的compiler有說明? 有人看過的可以share一下 06/26 00:39
推 Fenikso:我想講的只是.. n是input size, switch的數量並不會因為 06/26 02:20
→ Fenikso:input而改變, 所以就算裡面有100000個case也還是constant 06/26 02:20
→ Fenikso:time 06/26 02:20
→ Fenikso:這點yauhh講的並沒有錯 06/26 02:21
→ yoco315:這樣算的話,那我乾脆說所有的 input 都是有限多的.. 06/26 22:50
→ yoco315:對任何一個問題,我都用 code generator 生出 switch 碼 06/26 22:51
→ yoco315:然後交給 compiler 直接 output 答案就好.. 06/26 22:51
→ yoco315:這種論點無異跟白痴一樣嘛.. 06/26 22:51
→ yoco315:人家現在講的就是 case 的數目跟決策的時間.. 06/26 22:52
→ yoco315:好的 compiler 遇到好的 case 可以做出 O(1) 的跳轉沒錯 06/26 22:52
→ yoco315:但是 general case 就不是 06/26 22:52