1.2.4 算法的設計技術
現(xiàn)在,算法解題的必要條件都已具備了,如何設計一個算法來解決一個給定的問題呢?這正是本書希望解答的主要問題,我們會講一些一般性的設計方法。
那么,什么是算法設計技術呢?
算法設計技術(也稱為“策略”或者“范例”)是用算法解題的一般性方法,用于解決不同計算領域的多種問題。
查看本書的目錄,你會發(fā)現(xiàn)本書大多數(shù)章節(jié)都是專門介紹某一設計技術的。它們提取出一些已被證實對算法設計非常有用的關鍵思想。基于以下原因,我們認為學習這些技術是非常重要的。
第一,在為新問題(沒有令人滿意的已知算法可以解決)設計算法時,它們能夠給予指導。所以,學習這樣的技術正如“授人以魚,不如授人以漁”。當然,這并不是說,我們遇到的每個問題都必須應用所有的設計技術。但是放在一起,它們便構成一組強大的工具,為我們日后的學習和工作提供便利。
第二,算法是計算機科學的基礎。每一門學科都傾向于對其主要研究對象進行分類,計算機科學也不例外。算法設計技術讓我們可以按照內在設計理念對算法進行分類,所以,設計技術使我們能夠以一種自然的方式對算法進行分類和研究。