1.蠻力法
(也叫窮舉法
),是一種直接解決問題的方法,常常直接基於問題的描述和所涉及的概念及定義。
2.蠻力法優點:
邏輯清晰,相對於高效的、巧妙的演算法,實現和構思簡單。
同時蠻力法也是很多高效演算法的基礎。可以作為其他高效演算法的衡量標準。
對於一些重要的問題,它可以產生一些合理的演算法。
可以解決一些小規模的問題。它讓你花費較少的代價。
雖然巧妙和高效的演算法很少來自於蠻力法,但我們不應該忽略它作為一種重要的演算法設計策略的地位。
第一
,和其他某些策略不同,我們可以應用蠻力法來解決廣闊領域的各種問題。
第二
,對於一些重要的問題來說(比如:排
序、查詢、矩陣乘法和字串匹配),蠻力法可以產生一些合理的演算法,它們多少具備上些實用價值,而且並不限
制例項的規模。
第三
,如果要解決的問題例項不多,而且蠻力法可以用一種能夠接受速度對例項求解,那麼,設計
乙個更高效演算法所花費的代價很可能是不值得的。
第四
,即使效率通常很低,仍然可以用蠻力法解決一些小規模的
問題例項。
最後
,乙個蠻力演算法可以為研究或教學目的的服務。
舉例: 排序演算法(氣泡排序)
a0,…,aj↔
aj+1
,…,a
n-i-1|a
n-i≤…≤
an-1
演算法 bubblesort (a[0..n-1])
//該演算法用氣泡排序對陣列
a[0..n-1]排序
//輸入:乙個可排序陣列
a[0..n-1]
//輸出:非降序排列的陣列
a[0..n-1]
for i←0 to n-2 do
for j←0to n-2-i do
if a[j+1]swap a[j] and a[j+1]
演算法設計與分析之蠻力法
蠻力法是指採用遍歷 掃瞄 技術,即採用一定的策略將待求解問題的所有元素依次處理一次,從而找出問題的解。依次處理所有元素是蠻力法的關鍵,為了避免陷入重複試探,應保證處理過的元素不再被處理。1 蠻力法 列舉法 窮舉法 暴力法 要求設計者找出所有可能的情況,然後選擇其中一種情況,若該情況不可行 或不是最優...
演算法設計與分析學習 蠻力法
參考 演算法設計與分析 第三章 蠻力法 接下來的每章中,我們專注於一種特定的演算法設計策略。蠻力法是一種最簡單和直接的解決問題的辦法,往往是低效的,但我們不應該忽略它的地位,1 它可以解決廣闊領域的各種問題 2 在規模允許時,多少可以產生一些實用的演算法 3 往往可以以蠻力法為準繩,來衡量高效的演算...
演算法複習 蠻力法
一.定義 蠻力法是一種簡單直接解決問題的方法,常常直接基於問題的描述和所涉及的概念定義。二.蠻力法的用處 a.和其他策略不同,我們可以用它解決廣闊領域的各種問題,實際上,它可能是唯一一種什麼問題都能解決的一般性方法。b.對於一些重要的問題 例如 排序,查詢,矩陣乘法和字串匹配 來說,蠻力法可以可以產...