怎樣學算法

學習編程算法應該從兩個方面思考自己掌握的程度

================================================

1.已經知道了怎麼寫,最快無誤的把這個“知道”變成代碼的能力

這個能力主要用寫過的自創成功的代碼量來衡量

主要是

一遍正確的能力

疲勞狀態下找錯能力

知道自己寫過的程序是否含有錯誤的能力

================================================

2.遇到問題,能想出 用程序的方法 解決這個問題 的算法  的能力

這個能力的提高主要靠學習算法問題來提高

下面來詳細解釋一下如何“學習算法問題”

他有三個等級

(1)會解決這個問題了

如含多層括號的+-*/表達式求值

記住“含開頭結尾符#的符號大小記錄”和“一個數棧一個符棧”這個問題你就會了

(2)會這個算法方法了

這裏的算法方法指:如-棧思想,動態規劃思想

通過多遇到幾個可以用這種算法方法解決的問題來提高

(3)會創造這個算法了

比如遇到了一個問題

這個問題所需要的算法沒有前人遇到過

那就需要這種能力了

怎樣提高?

學習表達式求值問題的時候

思考前人是怎麼從這個問題抽象出解決方法的

思考方法:

先考慮問題最困難形式:如1+1*(2+2*3+(1+1))*2

取問題最簡單形式:如1+1*2

尋找解決思路1:先搜索等級最高的()然後從左到右計算,再計算*,再計算+

結果不適應最苦難形式問題

尋找解決思路2:+是否執行由+和+後面的符號的優先級決定(可行)

若不可解決最苦難問題,再次從最簡單問題帶上失敗原因來思考新方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章