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