第五章作業及總結

2022-07-10 19:57:11 字數 468 閱讀 6962

回溯法本質上是深度優先搜尋,解集樹通常為n層二叉樹或n層m叉樹,哪種適合用哪種,因為使用了遞迴,所以總體上時間複雜度和空間複雜度較高,不如動態規劃高效,但簡單易解,比較容易想到解法。另外評價乙個回溯演算法的好壞可以通過剪枝函式來評判,好的多個剪枝函式,可以使回溯更高效,避免無效搜尋,好的回溯應該是到達葉子結點則一定為乙個可行解,而不必再判斷是否為可行解。

該課程系統的講解了許多流行且實用的演算法,加深了我對演算法的印象,更讓我深刻意識到,好的軟體應該是好的資料結構和好的演算法的有機結合。而每個演算法不能簡單的說明誰好誰壞,比如八大排序演算法, 具體場景具體分析。

解一道題首先要思考使用怎麼樣的資料結構和怎樣的演算法,演算法中貪心和動態規劃雖然高效,但是很多時候是很難想到如何貪心和定義狀態轉移方程的,而這也是我頭疼的地方,只有多多練習,多看題解才能有感覺,至少現在看到一道題能大概知道它要用什麼演算法了,可實現部分還有點困難。

多多能有實踐課,講理論太多容易懵。學演算法還是多多打**比較好。

演算法第五章作業及學期總結

發現有些演算法其實以前就已經在用了,但是用得沒有條理,沒法用到下一次相似的型別中去。學習了演算法後能看出題目可以用哪種演算法來解決,減少了思考的時間,可以用更便捷有效的模板做法來解決類似的問題,也知道了不同演算法的優缺點,可以選擇更合適要求的演算法。學習新演算法的時候會在實踐的一些細節中思想卡住,然...

演算法第五章作業及學期總結

回溯法所用到的核心思想就是遞迴法,雖然其過程邏輯很清楚,而且執行效率很高。但缺點也是與之對應的,邏輯清楚,必然其抽象性很高,所以有時看它的解題過程很容易看懂,但要是自己動手寫這個遞迴過程,很難下筆。回溯法解決問題較為直觀易懂,但是其時間和空間開銷都比較大,需要使用限界函式縮小遞迴範圍。該課程讓我學習...

演算法第五章作業及學期總結

回溯法按深度優先策略搜尋問題的解空間樹。1 基本思想 2 基本行為 回溯法的基本行為是搜尋,搜尋過程使用剪枝函式來為了避免無效的搜尋。3 剪枝函式包括兩類 1.使用約束函式,剪去不滿足約束條件的路徑。2.使用限界函式,剪去不能得到最優解的路徑。通過這門課程的學習能夠更系統地了解並且運用部分演算法,不...