空间复杂度与时间复杂度
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空间复杂度与时间复杂度用于衡量一个算法的效率。
- 时间复杂度
首先举几个小例子:
一个简单的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 System.out.print(s[i][j]); } System.out.println(); } 这段代码是两个for循环嵌套,它的时间复杂度很容易看出是2n,通常这种我们用O(n)进行表示,表明它是线性变化的。 从上面举的两个例子可以看出,时间复杂度就是整个语句在执行过程中,根据所给的条件,在整个代码运行过程中所执行的次数,这个执行次数与所给的添加和执行参数的大小息息相关。 - 空间复杂度 空间复杂度通常指的是算法程序在计算机计算中计算所需要的存储空间。空间复杂度可从以下两个方面去描述: •程序保存所需要的存储空间,即程序的大小 •程序在执行过程中所需要消耗的存储空间资源,例如,程序在执行过程中的中间变量