遞歸,回溯和DFS的區別


遞歸是一種算法結構,回溯是一種算法思想
一個遞歸就是在函數中調用函數本身來解決問題
回溯就是通過不同的嘗試來生成問題的解,有點類似於窮舉,但是和窮舉不同的是回溯會“剪枝”,意思就是對已經知道錯誤的結果沒必要再枚舉接下來的答案了,比如一個有序數列1,2,3,4,5,我要找和為5的所有集合,從前往后搜索我選了1,然后2,然后選3 的時候發現和已經大於預期,那么4,5肯定也不行,這就是一種對搜索過程的優化

回溯搜索是深度優先搜索(DFS)的一種
對於某一個搜索樹來說(搜索樹是起記錄路徑和狀態判斷的作用),回溯和DFS,其主要的區別是,回溯法在求解過程中不保留完整的樹結構,而深度優先搜索則記下完整的搜索樹。

為了減少存儲空間,在深度優先搜索中,用標志的方法記錄訪問過的狀態,這種處理方法使得深度優先搜索法與回溯法沒什么區別了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM