發現有些演算法其實以前就已經在用了,但是用得沒有條理,沒法用到下一次相似的型別中去。學習了演算法後能看出題目可以用哪種演算法來解決,減少了思考的時間,可以用更便捷有效的模板做法來解決類似的問題,也知道了不同演算法的優缺點,可以選擇更合適要求的演算法。
學習新演算法的時候會在實踐的一些細節中思想卡住,然後花很長時間去理解和記憶【甚至0-1揹包還是期中考跑回去重做題目的時候才忽然摸到了一點實質,這時候都已經學貪心演算法了,回溯也是想起遞迴壓棧才想明白是怎麼回事】,希望乙個型別或者難點可以有多一些相似的題來做和講解分析,或許重複多次能理解得更好。
希望可以讓程式設計的內容和學到的演算法在腦海中關聯更緊密一點,有個實際的印象,比如在0-1揹包的時候可以把填的整個表輸出,然後逐行看【我是這麼才想明白的】。回溯的時候有那個具體的圖形表示很好,不過當時在理解往回走的那個部分卡住了,我覺得可以用一些我們已知的東西模擬,用一些比較具體的東西可能會更好理解。
演算法第五章作業及學期總結
回溯法所用到的核心思想就是遞迴法,雖然其過程邏輯很清楚,而且執行效率很高。但缺點也是與之對應的,邏輯清楚,必然其抽象性很高,所以有時看它的解題過程很容易看懂,但要是自己動手寫這個遞迴過程,很難下筆。回溯法解決問題較為直觀易懂,但是其時間和空間開銷都比較大,需要使用限界函式縮小遞迴範圍。該課程讓我學習...
演算法第五章作業及學期總結
回溯法按深度優先策略搜尋問題的解空間樹。1 基本思想 2 基本行為 回溯法的基本行為是搜尋,搜尋過程使用剪枝函式來為了避免無效的搜尋。3 剪枝函式包括兩類 1.使用約束函式,剪去不滿足約束條件的路徑。2.使用限界函式,剪去不能得到最優解的路徑。通過這門課程的學習能夠更系統地了解並且運用部分演算法,不...
演算法第五章作業及學期總結
回溯法的基本做法是搜尋或者是能夠避免不必要搜尋的窮舉式搜尋法。回溯法在問題的解空間樹中,按深度優先策略,從根節點出發搜尋解空間樹。基本步驟是 1.針對問題定義問題的解空間 2.確定易於搜尋的解空間 3.以dfs搜尋解空間,並在搜尋過程中用剪枝函式避免無效搜尋。系統性地學習了遞迴與分治法 動態規劃 貪...