搜尋學習心得

2021-09-13 11:17:16 字數 1550 閱讀 9710

在學習了眾多搜尋的方式後,不由感慨。啊,太巨了!!!今天huayucaiji我就給大家講一講c++搜尋的心得吧!!!

深度優先搜尋

廣度優先搜尋

迭代加深搜尋

乙個乙個講吧!!!

深度優先搜尋(下簡稱「深搜」),簡稱dfs。是簡潔明瞭的搜尋方式,以遞迴的方式實現。比較簡單

好,廢話不多說,讓我們看一道題全排列問題

原題見洛谷~~~~~~~~

解題思路:

首先想一想,是可以寫n次迴圈巢狀,把所有數枚舉一遍的(偽**):

for

(int i=

1;i<=n;i++

)}

但作為蒟蒻,我還不會直接在主函式裡寫n次迴圈巢狀。怎麼辦呢??可以用遞迴,**如下

void

qiantao

(int n)

qiantao

(n-1);

}

很簡單,但是如何運用到本題裡來呢???可以用乙個bool used[i];來記錄第i個數是否被用過然後利用回溯的方法解題。這其實就是深搜的思想,是不是非常簡單?**如下:

void

permutate

(int left)

cout

return;}

//重要的深搜部分來了

for(

int i=

1;i<=n;i++)}

//結束啦!!!

}

全**如下

#include

using

namespace std;

bool used[10]

;int n,ans[10]

;void

permutate

(int left)

cout

for(

int i=

1;i<=n;i++)}

}int

main()

這個題很簡單吧,可以累計信心,是初學者成長必經之路。

下面,來看一道真正的 深搜的題(不知道難不難~~~~)

這道題十分經典,來看看如何用dfs的方式解決。

首先找出乙個數(最好從1開始,有序列舉),然後找出沒有用過的數字並且與找出的數之和為質數,作為下一層遞迴的引數,進行求解。最後確定首尾和為質數即可輸出。還是非常1簡單易懂的!!!

遞迴**不難,如下:

void

dfs(

int begin,

int n,

int last)

for(

int i=

1;i<=num;i++

) cout<<

"\n"

;return;}

for(

int i=

1;i<=num;i++)}

}

收尾了。

深搜非常簡單,但要多做題練手,否則不熟練在運用時會出大問題哦!

學習心得 python學習心得

自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...

學習心得 我的學習心得

我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...

django全文搜尋學習心得(四)sphinx篇

很遺憾,haystack sphinx 沒有文件可以檢視,菜鳥們都安息了。還好有django sphinx 這玩意挺好!安裝 django sphinx 這個現在已經是非常穩定的了,所以github上邊也不會再有任何新的發行版了,穩定才是最好的保障。所以直接pip install django sp...