1、概念
- 时间复杂度与空间复杂度是对算法做出性能评价的指标;
- 时间复杂度:算法在计算机中运行所耗费的时间
- 空间复杂度:算法在计算机中运行所耗费的空间
2、举例
for (int i = 0; i < n; i++) { //时间复杂度:n
for (int j = 0; j < n; j++) { //时间复杂度:n*n
array[i][j] = 0; //时间复杂度:n*n
for (int k = 0; k < n; k++) { //时间复杂度:n*n*n
array[i][j] = 1; //时间复杂度:n*n*n
}
}
}
3、计算法则
-
时间复杂度:
- 加法原则: $ T(n)=T_1(n) + T_2(n) = Max(T_1(n),T_2(n))$
- 乘法原则: $ T(n)=T_1(n) * T_2(n) = O(T_1(n) * T_2(n))$
-
空间复杂度:
- 需要的辅助空间是多少。如使用了a[n]辅助空间,则辅助空间为O(n)
注:此题型,一般考察在选择题的第一题以及算法应用题中第三小问,这是总结的第一个知识点,感觉有些不全面的地方,无从下手。