枚舉和窮儘是不是最有效,最暴力的演算法?


暴力搜索(Brute force search) 和窮舉搜索(exhaustive search) 是同一個演算法設計技巧。其實他們不怎麼暴力,反而比較呆萌,逐個輸入組合慢慢地測試結果對不對。


任何np內問題都可搜出來,可計算範圍的應該也可以這樣,很多演算法只是找到一條能減少不必要搜索的路子,優化的本質是減少無用功

話說我當年noi就這麼搞,因為按case算分,混到全國三等,當然難題和acm就不適合了

不過工作中這個做法有用,一來很多實踐問題不是難,而是複雜,用簡單思路好分析,二來對時間和最優要求沒那麼苛刻


我覺得不是……NP以外的問題你怎麼搜?

(感謝冒泡的回答給我的啟發)


猴子通過敲代碼搜索出你需要的可用程序


窮舉沒有做信息的壓縮,有模型就相當於做了信息壓縮。很多問題的規模對實際硬體平台的存儲和計算並不現實,就不能窮舉了。


並沒有最有效的演算法。

不同演算法適用於不同的問題。

同一個問題也有不同的枚舉辦法。

某些情況,枚舉甚至會比某些高級演算法高效。

所以,具體問題具體分析啊啊。

至於暴力,是很暴力啊,全部算一遍阿阿。


建立模型就是為了避開無用窮舉


推薦閱讀:

哪本《數據結構與演算法》最好?
機器學習演算法庫推薦?
程序語言中的取余是如何實現的?
怎樣快速求出前1到n中某一個素因子x出現的次數?

TAG:演算法 | 數學 | 演算法設計 |