算法介于计算机和数学之间,它既需要很好的编程功底,同时需要数学的逻辑思维
很多人开始学习算法时都是一头雾水,要不随便找个题库胡乱一通刷题,要不三天听听这个网课两天又去听听那个mooc,那么如何高效学习算法?
循序渐进
首先搞清楚自己的目标再准备下手,最高效的算法学习是循序渐进,系统性的学习
速成版:
1、暴力枚举
2、递推和递归
3、高精度加减乘除
4、动态规划
5、贪心算法
6、搜索(广搜,深搜)
例:动态规划题:
蓝桥杯速成版本:
1、循环
2、递归递推
3、排序
4、高精度计算
5、搜索(深搜,广搜)
6、贪心
7、动态规划
8、分治
9、位运算
10、枚举暴力
11、字符串处理
12、模拟
13、二分,归并
14、树形结构
15、数论,图论
另蓝桥杯三大法宝:①看题细心②心态好③把握时间
例:模拟题
精细版:
1、时间、空间复杂度
2、数据结构:线性表,栈与队列,哈希表,树,树状数组
3、十大排序:
简单排序:插入,选择,冒泡
分治:快排,归并
分配:桶排序,基数排序
树状:堆排
其他:计数排序,希尔排序
4、图论:图表示,最短路径,最小生成树,关键路径
5、搜索:贪心,找路,地图,最优路径
6、动态规划:DP(树形,线性,区间,数位,状态压缩)
7、匹配:正则表达式
8、流:最大流,最大收益,方格取数
例:排序题
更多题请参考题库:蓝桥杯ACM训练系统 - C语言网www.dotcpp.com