1、 定義:搜尋演算法是去搜尋每乙個可能,主要分以下幾種演算法:
列舉法:暴力搜尋
深度優先搜尋
廣度優先搜尋
回溯2、 深度優先搜尋——一條道走到黑
1) 判斷邊界條件,向上回退
2) 解決當前這一步需要做什麼
3) 使用相同的邏輯處理下一步
3、廣度優先搜尋
為了便於進行搜尋,要設定乙個表儲存所有的結點。由於在廣度優先搜尋演算法中,要滿足先生成的結點先擴充套件的原則,所以儲存結點的表一般採用佇列這種資料結構。
廣度優先搜尋演算法的搜尋步驟一般是:
(1)從佇列頭取出乙個結點,檢查它按照擴充套件規則是否能夠擴充套件,如果能則產生乙個新結點。
(2)檢查新生成的結點,看它是否已在佇列中存在,如果新結點已經在佇列**現過,就放棄這個結點,然後回到第(1)步。否則,如果新結點未曾在佇列**現過,則將它加入到佇列尾。
(3)檢查新結點是否目標結點。如果新結點是目標結點,則搜尋成功,程式結束;若新結點不是目標結點,則回到第(1)步,再從佇列頭取出結點進行擴充套件。
最終可能產生兩種結果:找到目標結點,或擴充套件完所有結點而沒有找到目標結點。
剩下的就要靠做題來加深理解了,後續我想起來就來補充例題……(敬請期待)
明明白白看MFC之程式框架
對於程式設計師來說,如果要提高程式設計效率,乙個好用的,功能強大的並且可以得心應手使用的程式設計工具往往會給我們程式設計師帶來莫大的方便。其實對於現在的程式設計工具來說,使用哪一種工具都不是問題的關鍵,重要的是你能夠使用到什麼程度,畢竟現在的工具都是非常的強大,對於一般的程式設計任務來說還沒有不能夠...
明明白白看MFC之程式框架(一)
對於程式設計師來說,如果要提高程式設計效率,乙個好用的,功能強大的並且可以得心應手使用的程式設計工具往往會給我們程式設計師帶來莫大的方便。其實對於現在的程式設計工具來說,使用哪一種工具都不是問題的關鍵,重要的是你能夠使用到什麼程度,畢竟現在的工具都是非常的強大,對於一般的程式設計任務來說還沒有不能夠...
《明明白白看MFC之程式框架(三)》
三 mfc 程式結構大剖析 在前面我分別給出了sdk和mfc 應用程式的框架,並且稍微理了一下它們之間的對應關係。但是對於mfc 程式來說,要想真正搞懂它的框架的話,還是不夠的。現在我要做的事就是繼續去分析一下上面的mfc 程式,期望能夠如我的標題所言,明明白白的看透mfc 的應用程式框架。首先就是...