常用时间复杂度和空间复杂度
Big O natation
O(1):常数复杂度 constant complexity
O(log n):对数复杂度 logarithmic complexity
O(n):线性时间复杂度 linear complexity
O(n^2):平方 n square complexity
O(n^3):立方 n cubic complexity
O(2^n):指数 exponential growth
O(n!):阶乘 factorial
分析时间复杂度一般看代码根据 n 的情况会执行多少次,并且不考虑 n 前面的常数系数,如 O(2n) 复杂度也是 O(n).
示例:
(1) O(1):
int i = 100;
System.out.println(n);
(2)O(n):
for(int i = 0; i < n; i ++) {
System.out.println(i);
}
(3)O(n^2):
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
System.out.println(j);
}
}