演算法介於計算機和數學之間,它既需要很好的程式設計功底,同時需要數學的邏輯思維

很多人開始學習演算法時都是一頭霧水,要不隨便找個題庫胡亂一通刷題,要不三天聽聽這個網課兩天又去聽聽那個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語言網

更多題請參考題庫: