搜尋演算法14之總結

2021-07-11 09:56:30 字數 523 閱讀 8402

做了近兩周的搜尋專題,感覺收穫頗大。首先就是知道了主要的知識點或者說是搜尋方法,嚴格來說,其實就是深搜和廣搜,當然也夾雜著二分查詢與三分演算法,當然偶爾也遇到了回溯演算法。

bfs用的是佇列,dfs用的是遞迴。遞迴之前寫程式的時候偶爾會用用,所以深搜學起來用起來很快,但是佇列以前沒學過,最近看了看書了解了下但是寫程式以前沒用過,所以用起來還不是很隨意。我個人感覺深搜與廣搜的本質不同就是深搜下一次擴充套件的是本次擴充套件出來的子節點中的乙個,而廣搜擴充套件的則是本次擴充套件的節點的兄弟節點。所以也就導致最終採用了不同的資料結構。

廣搜是求解最優解的一種較好的方法,而深搜一般會用於只要求求解,並且解答樹中的重複結點較多且重複較難判斷時使用。

當然,還有雙向廣搜。單向廣搜雖然可以得到最優解,但是空間消耗增長快,如用廣搜,則在理論上可以減少二分之一的搜尋量,可有效提高搜尋速度。

最後,要用一句話來總結搜尋的話就是:一切都是套路啊。我感覺搜尋的題目思路找起來還可以,**寫起來結構都是相似的,很好寫。當然了,正所謂:紙上得來終覺淺,絕知此事要躬行,要想真正的理解各種搜尋的思想,還是要多做題啊。

搜尋演算法總結

搜尋演算法,是一種在狀態空間中尋找特定的目標狀態及到達目標狀態的途徑的系統方法。常見的題目如 搜尋是計算機求解問題的最基本方法,適用面很廣,沒有向動態規劃那樣對狀態有最優化原理和無後效性的約束。而針對具體問題,特別是運用了某種智慧型化的優化手段,也許會帶來某些具體的約束。相關題目 poj 3278 ...

搜尋演算法總結

a 演算法,分支限界演算法。如有錯誤歡迎指正。為了便於描述,搜尋演算法適用解決在一張有權無向圖中,找到從原點到終點的最短路徑。wait arr陣列存放待擴充套件的節點。初始化 把初始節點root 加入到wait arr 陣列中 while wait arr陣列不為空 if 還存在子節點 子節點加入到...

ACM搜尋演算法總結

一 回溯演算法 回溯演算法是所有搜尋演算法中最為基本的一種演算法,其採用了一種 走不通就掉頭 思想作為其控制結構,其相當於採用了先根遍歷的方法來構造解答樹,可用於找解或所有解以及最優解。評價 回溯演算法對空間的消耗較少,當其與分枝定界法一起使用時,對於所求解在解答樹中層較深的問題 有較好的效果。但應...