当前位置:文档之家› 空间复杂度与时间复杂度

空间复杂度与时间复杂度

空间复杂度与时间复杂度用于衡量一个算法的效率。

- 时间复杂度
首先举几个小例子:
一个简单的for循环
for(int i = 0;i<6;i++){
//生成一个97-122之间的int类型整数65-90大写
int intVal = (int)(Math.random() * 26 + 97);
//将intVal强制转换为char类型后连接到result后面
result = result + (char)intVal;
}
上述代码中,总共执行了6次,对于这种常数的复杂度,经常会用O(1)来表示。

接下来,看这个代码:
for(int i=0;i<2; i++){
for(int j = 0; j <n; j++){
System.out.print(s[i][j]);
}
System.out.println();
}
这段代码是两个for循环嵌套,它的时间复杂度很容易看出是2n,通常这种我们用O(n)进行表示,表明它是线性变化的。

从上面举的两个例子可以看出,时间复杂度就是整个语句在执行过程中,根据所给的条件,在整个代码运行过程中所执行的次数,这个执行次数与所给的添加和执行参数的大小息息相关。

- 空间复杂度
空间复杂度通常指的是算法程序在计算机计算中计算所需要的存储空间。

空间复杂度可从以下两个方面去描述:
•程序保存所需要的存储空间,即程序的大小
•程序在执行过程中所需要消耗的存储空间资源,例如,程序在执行过程中的中间变量。

相关主题