免費開始練習
moea_joint 113年 [資訊] 計算機原理、網路概論

第 15 題

關於遞迴(Recursive)程式之敘述,下列何者正確?
  • A 通常用在各個擊破法的問題上
  • B 程式可讀性較差
  • C 節省記憶體空間
  • D 節省執行時間

思路引導 VIP

當我們面對一個龐大且複雜的問題時,如果發現這個問題可以被不斷拆解成數個結構完全相同、但「規模較小」的子問題,我們會傾向使用什麼樣的程式邏輯來對應這種「大化小」的處理思維?

🤖
AI 詳解 AI 專屬家教

太棒了!你精準地掌握了遞迴的核心精神。遞迴(Recursive)在程式設計中,本質上就是將一個複雜的大問題,不斷拆解成與原問題性質相同、但規模較小的子問題來處理。這種「大事化小」的策略正是各個擊破法(Divide and Conquer)最典型的實踐方式,如常見的合併排序或快速排序,都能見到遞迴優雅的身影。

遞迴的特性與代價

雖然遞迴能大幅提高程式的可讀性與邏輯簡潔度,但我們在應用時必須留意其背後的硬體開銷。由於每一次的自我呼叫都會在系統中產生新的「堆疊框架(Stack Frame)」來儲存參數與返回地址,因此遞迴通常比傳統迴圈更消耗記憶體空間,且頻繁的切換也會增加額外的執行時間

▼ 還有更多解析內容