枚舉和窮儘是不是最有效,最暴力的演算法?
01-05
暴力搜索(Brute force search) 和窮舉搜索(exhaustive search) 是同一個演算法設計技巧。其實他們不怎麼暴力,反而比較呆萌,逐個輸入組合慢慢地測試結果對不對。
任何np內問題都可搜出來,可計算範圍的應該也可以這樣,很多演算法只是找到一條能減少不必要搜索的路子,優化的本質是減少無用功話說我當年noi就這麼搞,因為按case算分,混到全國三等,當然難題和acm就不適合了
不過工作中這個做法有用,一來很多實踐問題不是難,而是複雜,用簡單思路好分析,二來對時間和最優要求沒那麼苛刻我覺得不是……NP以外的問題你怎麼搜?
(感謝冒泡的回答給我的啟發)
猴子通過敲代碼搜索出你需要的可用程序
窮舉沒有做信息的壓縮,有模型就相當於做了信息壓縮。很多問題的規模對實際硬體平台的存儲和計算並不現實,就不能窮舉了。
並沒有最有效的演算法。不同演算法適用於不同的問題。同一個問題也有不同的枚舉辦法。某些情況,枚舉甚至會比某些高級演算法高效。
所以,具體問題具體分析啊啊。至於暴力,是很暴力啊,全部算一遍阿阿。
建立模型就是為了避開無用窮舉
推薦閱讀:
※哪本《數據結構與演算法》最好?
※機器學習演算法庫推薦?
※程序語言中的取余是如何實現的?
※怎樣快速求出前1到n中某一個素因子x出現的次數?