算法复习 - 蛮力法
一.定義
蠻力法是一種簡單直接解決問題的方法,常常直接基于問題的描述和所涉及的概念定義。
二.蠻力法的用處
a.和其他策略不同,我們可以用它解決廣闊領域的各種問題,實際上,它可能是唯一一種什么問題都能解決的一般性方法。
b.對于一些重要的問題(例如 排序,查找,矩陣乘法和字符串匹配)來說,蠻力法可以可以產生一些合理的算法
c.如果要解決的問題實例不多,而且蠻力法可以用一種能夠接受的速度對實例求解,那么設計一個更高效率的算法是不值得的
d.即使效率很低,仍然可以用蠻力算法解決一些小規模的問題實例。
f.蠻力算法可以為研究或教學目的服務,例如,可以以之為準繩 ,來衡量同樣問題的更高效算法。
三.問題實例
1.選擇排序
選擇排序最開始的時候,掃描整個列表,將最小的元素與第一個元素進行交換。然后從第二個元素開始掃描列表,找到n - 1個元素中最小元素和第二個元素交換。直到第n - 1遍。
2.冒泡排序
它比較表中的相鄰元素,如果是逆序的話,就交換他們的位置。重復多次以后,最大的元素就會沉到列表的最后一個位置。第二遍操作,第二大的元素沉下去,這樣進行n - 1遍操作,該列表就排好序了。
3.字符串匹配問題
它的想法很簡單,就是從主串的第一個元素開始與模串的所有元素進行匹配,如果匹配失敗,那么就返回主串的第二個元素,直到遍歷完所有主串的元素。
這個算法叫做BF。
4.還有比較經典的旅行商問題和分配問題,分配問題在分支限界法中會詳細講解,這里不多做贅述、這兩個問題在空間,時間允許的情況下皆可通過窮舉查找的辦法解決。
總結
以上是生活随笔為你收集整理的算法复习 - 蛮力法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: es6知识总结 模块 承诺加载
- 下一篇: 计算机显卡的专业术语怎么说,电脑显卡知识