Chinese, Traditional subtitles

← 06x-03 Using Recursion

dummy description

Get Embed Code
4 Languages

Showing Revision 3 created 02/06/2013 by shalley3.

  1. 學生 W.Q. Feng 提問,什麼時候你使用遞迴定義
    而不是 while loop?
  2. 所以這是一個好問題,就解決問題的角度來看
  3. 你能以遞迴做的事,也能以 while loop 來做
  4. 你能以 while loop 做的事,也能以遞迴來做
  5. 無論以哪種方式,你都可以解決問題
  6. 通常以 while loop 更有效率
  7. 因為你沒有額外的程式呼叫所產生的開銷 (overhead)
  8. 往往以遞迴解決問題,是一個更簡單又優雅的解決方案
  9. 所以取決於什麼比較重要,很多時候權衡的結果是
  10. 使用簡單又優雅的解決方案比較好
  11. 除非你真的仔細地為真正大的輸入來計時
  12. 你可能甚至無法測量性能的差異
  13. 你不會發現有何不同
  14. 所以,能獲得正確的解決方案
  15. 並且讓程式易於編寫,別人易於理解
    是更重要的事
  16. 在很多問題中,遞迴的解決方案真的能做到這些
  17. 它的程式碼比反覆運算的解決方案短很多
  18. 而且它是易於理解和跟隨
  19. 在性能問題很重要時,我們之前看到的費波那西範例
  20. 如果你最後呼叫的次數爆發
  21. 使得以遞迴的方式,變得太慢
  22. 你寧可使用更複雜的解決方案,像是使用 while loop
    而且避免遞迴呼叫