思路
- 遍历常见的算法思路
- 遍历常见的数据结构
- 空间和时间的交换(哈希表)
- 预处理信息(排序)
- 在瓶颈处寻找答案(O(nlogn)+O(n2);O(n3))
实际编写问题
- 极端条件的判断
数组为空?字符串为空?数量为0?指针为null?
- 代码规范(变量名)
- 模块化,复用性
解密时间复杂度大O
- O(nlogn+n) = O(nlogn)
- O(nlogn+n^2) = O(n^2)
- O(AlogA+B)不变
对邻接表实现的图进行遍历:
时间复杂度:O(V+E)
数据规模的概念
前提:如果想在1s之内解决问题:
- O(n2)的算法可以处理大约104级别的数据;
- O(n)的算法可以处理大约10^8级别的数据;
- O(nlogn)的算法可以处理大约10^7级别的数据
空间复杂度
- 多开一个辅助的数组:O(n);
- 多开一个辅助的二维数组:O(n^2);
- 多开常数空间:O(1);
注意:递归的调用是有空间代价的,递归调用的深度就是空间的复杂度。
网友评论