算法(Algorithm)是指操作数据、解决程序问题的一组方法。
衡量算法优劣的维度
-
时间维度(时间复杂度):执行当前算法所消耗的时间
-
空间维度(空间复杂度): 执行当前算法需要占用多少内存空间
常见的时间复杂度量级
-
常数阶O(1) :无论代码执行了多少行,其他区域不会影响到操作,这个代码的时间复杂度都是O(1)
-
线性阶O(n):它消耗的时间是随着 n 的变化而变化的,因此可以用O(n)来表示它的时间复杂度。
-
平方阶O(n²) :当存在双重循环的时候,即把 O(n) 的代码再嵌套循环一遍,它的时间复杂度就是 O(n²) 了。
-
对数阶O(logn):成 2 倍数的缩减搜索范围,也就是说需要经过 log2^n 次即可跳出循环。
-
线性对数阶O(nlogn):将时间复杂度为O(logn)的代码循环N遍的话,那么它的时间复杂度就是 n * O(logn),也就是了O(nlogn)
- 常用算法整理已经更新到这:
https://www.jianshu.com/p/47481f735663
网友评论