演算法設計之蠻力法

2021-06-25 08:02:35 字數 1105 閱讀 1743

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.對於一些重要的問題 例如 排序,查詢,矩陣乘法和字串匹配 來說,蠻力法可以可以產...