演算法設計與分析之蠻力法

2021-10-11 02:31:32 字數 1276 閱讀 2291

蠻力法是指採用遍歷(掃瞄)技術,即採用一定的策略將待求解問題的所有元素依次處理一次,從而找出問題的解。依次處理所有元素是蠻力法的關鍵,為了避免陷入重複試探,應保證處理過的元素不再被處理。

1、蠻力法(列舉法、窮舉法、暴力法)要求設計者找出所有可能的情況,然後選擇其中一種情況,若該情況不可行(或不是最優解)則試探下一種可能的情況。

2、蠻力法是一種直接解決問題的方法,常常直接基於問

題的描述和所設計的概念定義。

3、力」一指計算機的能力,而不是人的智力。

4、蠻力法常常是最容易應用的方法。

5、蠻力法不是乙個最好的演算法(巧妙和高效的演算法很少出自蠻力) ,但當我們想不出更好的辦法時,它也是一種有效的解決問題的方法。

6、它可能是惟一一種幾乎什麼問題都能解決的一般性方法,常用於一些非常基本、但又十分重要的演算法。

優點

1、邏輯清晰,編寫程式簡潔

2、對於一些重要的問題(比如:排序、查詢、矩陣乘法和字串匹配),可以產生一些合理的演算法

3、解決問題的例項很少時,可以花費較少的代價

4、可以解決一些小規模的問題(使用優化的演算法沒有必要,而且某些優化演算法本身較複雜)

5、可以作為其他高效演算法的衡量標準

缺點

用蠻力法設計的演算法其時間效能往往也是最低的, 典型的指數時間演算法一般都是通過蠻力搜尋而得到的

1、搜尋所有的解空間

2、搜尋所有的路徑

3、直接計算

4、模擬和**

用蠻力法解決問題,通常可以從兩個方面進行演算法設計:

1、找出列舉範圍:分析問題所涉及的各種情況。

2、找出約束條件:分析問題的解需要滿足的條件,並用邏輯表示式表示。

1、百元百雞問題

2、bf演算法

3、kmp演算法

4、排序(選擇排序)

5、0/1揹包問題

6、tsp-圖問題

7、最近對問題

知識點總結

1、蠻力法的設計思想:採用一定的策略將待求解問題的所有元素依次處理一次, 從而找出問題的解。

2、求解步驟:

(1)、找出列舉範圍

(2)、找出約束條件

結語

演算法設計與分析學習 蠻力法

參考 演算法設計與分析 第三章 蠻力法 接下來的每章中,我們專注於一種特定的演算法設計策略。蠻力法是一種最簡單和直接的解決問題的辦法,往往是低效的,但我們不應該忽略它的地位,1 它可以解決廣闊領域的各種問題 2 在規模允許時,多少可以產生一些實用的演算法 3 往往可以以蠻力法為準繩,來衡量高效的演算...

演算法設計之蠻力法

1.蠻力法 也叫窮舉法 是一種直接解決問題的方法,常常直接基於問題的描述和所涉及的概念及定義。2.蠻力法優點 邏輯清晰,相對於高效的 巧妙的演算法,實現和構思簡單。同時蠻力法也是很多高效演算法的基礎。可以作為其他高效演算法的衡量標準。對於一些重要的問題,它可以產生一些合理的演算法。可以解決一些小規模...

演算法分析與設計 蠻力法0 1揹包

蠻力法是一種簡單直接解決問題的方法,常常直接基於問題的描述,所以蠻力法也是最容易應用的方法。蠻力法所依賴 的基本技術是遍歷,即採用一定的策略依次處理待求解問題的所有元素,從而找出問題的解。由於其需要依次窮舉待處理的元素,因此蠻力法是一種典型的指數級時間演算法。給定n個重量為 價值為的物品和乙個容量為...