感觉自己的思维思路并不清楚,做题没有成体系。在看了一篇文章之后,我知道,思考也是要有步骤的,有套路可循的。
先分析问题,抽出算法,再具体实现设计算法,最后检验算法是否正确以及算法的复杂性,能否改进算法。
学习博客:https://blog.csdn.net/rainchxy/article/details/77323848
关于算法的基础知识。
时间复杂度:算法运行需要的时间,一般将算法的执行次数(函数T(n))作为时间复杂度的度量标准。
时间复杂度渐进上界:O(n),(如两个嵌套for循环为一个О(n^2)),(如单层位置循环次数的复杂度为О(log2n))
时间复杂度渐近下界:Ω(f (n))
空间复杂度:算法占用的空间大小。一般将算法的辅助空间作为衡量空间复杂度的标准。
常见算法复杂度分类:①:常数阶,O(1),②:多项式阶,O(n),O(n^2),O(n^3), ③:指数阶,O(2^n),O(n!),O(n^n), ④:对数阶O(log n), O(n*log n)