阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 一般警察特種考試_二等_刑事警察人員犯罪分析組:計算機概論(包括計算機結構、資料結構、程式設計)#25629
科目:計算機概論
年份:103年
排序:0

題組內容

五、遞迴演算法(recursive algorithm)經常被用來解決某些問題。(每小題 5 分,共 25 分)

申論題內容

⑸動態規劃法(dynamic programming)也經常被用來解決某些問題。請問它和遞迴 演算法(recursive algorithm)主要的差異為何?

詳解 (共 1 筆)

詳解 提供者:hchungw
動態規劃法(Dynamic Programming)和遞迴演算法(Recursive Algorithm)之間的主要差異在於它們解決問題的方式和時間複雜度。以下是它們之間的比較:
問題解決方式:
遞迴演算法通常是一種自頂向下的解決方法,即問題被分解成更小的子問題,然後以遞迴方式解決這些子問題,直到達到基本情況。
動態規劃則是一種自底向上的解決方法,通常是通過解決較小的子問題來解決原始問題,然後將中間結果存儲起來,避免重複計算。
重複計算:
在遞迴演算法中,由於可能多次解決相同的子問題,因此存在重複計算的問題,這可能會導致效率較低。
動態規劃通常通過記憶化搜索或建立一個表格來存儲中間結果,避免了重複計算,因此效率通常較高。
時間複雜度:
由於動態規劃避免了重複計算,因此通常在解決相同問題時比遞迴演算法更有效率,時間複雜度更低。
總的來說,雖然兩種方法都可以解決具有重疊子問題結構的問題,但動態規劃通常在效率上優於遞迴演算法,特別是當問題規模較大時。