基础算法
时间复杂度
1.掌握时间复杂度的大概计算方法
- 一秒对应的时间复杂度是10^8
- 一个问题要根据数据范围和你用的算法得到时间复杂度
- 每个问题都会给出会运算时间,判断是否超时
2.时间复杂度的应用(了解):由数据范围反推算法复杂度以及算法内容
基础算法
1、掌握算法的思路需要做好总结
2、B站上有很多的精彩视频讲解
3、acwing上有算法模板和算法课(但是算法课需要收费)
4、洛谷有官方题单可以巩固基础,后期算法学完了就可以刷洛谷题单
5、不会的问题要先进行思考,如果一点都没有思路可以说明直接看题解
桶排序
要求:掌握桶的概念与运用
模拟
模拟思想:根据问题建立模型,模拟实际按程序走一遍,最终求出答案。
模拟高精度算法
每种数据都有相应的范围,c范围最大的long long,但是有时我们会遇到超出这些数据范围的运算,需要掌握相应的高精度运算
1、C语言中没有大数类,掌握手写高精度的加减乘除
2、java中有BIgIntger类和BigDecimal类,不用手写,但是需要掌握相应的方法
递归
要求:掌握递归的思维
二分
要求:
- 1、掌握普通二分搜索,了解二分的时间复杂度
- 2、掌握有重复元素的二分搜索(搜索第一个和最后一个)
- 3、掌握二分答案的概念
- 4、递归的应用-尝试用递归写二分
例题