演算法介於計算機和數學之間,它既需要很好的程式設計功底,同時需要數學的邏輯思維
很多人開始學習演算法時都是一頭霧水,要不隨便找個題庫胡亂一通刷題,要不三天聽聽這個網課兩天又去聽聽那個mooc,那麼如何高效學習演算法?
循序漸進
首先搞清楚自己的目標再準備下手,最高效的演算法學習是循序漸進,系統性的學習
速成版:
1、暴力列舉
2、遞推和遞迴
3、高精度加減乘除
4、動態規劃
5、貪心演算法
6、搜尋(廣搜,深搜)
例:動態規劃題:
[藍橋杯][2014年第五屆真題]地宮取寶 - C語言網
[藍橋杯][演算法提高VIP]和最大子序列 - C語言網
[藍橋杯][2013年第四屆真題]格子刷油漆 - C語言網
[藍橋杯][演算法提高]能量項鍊 - C語言網
藍橋杯速成版本:
1、迴圈
2、遞迴遞推
3、排序
4、高精度計算
5、搜尋(深搜,廣搜)
6、貪心
7、動態規劃
8、分治
9、位運算
10、列舉暴力
11、字串處理
12、模擬
13、二分,歸併
14、樹形結構
15、數論,圖論
另藍橋杯三大法寶:①看題細心②心態好③把握時間
例:模擬題
[藍橋杯][2014年第五屆真題]蘭頓螞蟻 - C語言網
[藍橋杯][基礎練習VIP]矩陣乘法 - C語言網[藍橋杯]
[基礎練習VIP]龜兔賽跑預測 - C語言網[藍橋杯][基礎練習VIP]龜兔賽跑預測 - C語言網
[藍橋杯][2014年第五屆真題]分糖果 - C語言網
精細版:
1、時間、空間複雜度
2、資料結構:線性表,棧與佇列,雜湊表,樹,樹狀陣列
3、十大排序:
簡單排序:插入,選擇,冒泡
分治:快排,歸併
分配:桶排序,基數排序
樹狀:堆排
其他:計數排序,希爾排序
4、圖論:圖表示,最短路徑,最小生成樹,關鍵路徑
5、搜尋:貪心,找路,地圖,最優路徑
6、動態規劃:DP(樹形,線性,區間,數位,狀態壓縮)
7、匹配:正則表示式
8、流:最大流,最大收益,方格取數
例:排序題
[程式設計入門]選擇排序 - C語言網
[程式設計入門]三個數字的排序 - C語言網
[藍橋杯][演算法提高VIP]插入排序 - C語言網
[藍橋杯][演算法提高VIP]氣泡排序計數 - C語言網
更多題請參考題庫: