赞
踩
- 列出循环趟数t和每轮循环i的值
- 找到t与i的关系
- 确定循环停止条件
- 联立解方程
- 写结果
求时间复杂度
i = n*n; while(i!=1) i /= 2;
t 0 1 2
i
![]()
![]()
t与i的关系:
循环停止条件:i=1
有
及复杂度为
- 列出外层循环i的变化值
- 列出内层语句的执行次数
- 求和,写结果
求时间复杂度
for(i=0;i<n;i++) for(j=0;j<m;j++) t++;
计算
i 0 1 2 ... n-1
m m m ... m
时间复杂度为O(mn)
面积
mn
- 体积法
- 计算
求时间复杂度
for(i=0;i<=n;i++) for(j=0;j<=i;j++) for(k=0;k<=j;k++) t++;
体积
计算
1、常量空间
存储空间大小固定,和输入没有关系,空间复杂度是O(1)2、线性空间
算法中定义了一个线性集合,如一个列表,并且集合大小和输入规模n成正比,空间复杂度记为O(n)3、二维空间
算法中定义了一个二维列表集合,并且集合的长和宽都和输入规模n成正比,空间复杂度记为O(nm)4、递归空间
递归过程就是一个进栈和出栈的过程,当进入一个新函数时,进行入栈操作,把调用的函数和参数信息压入栈中;当函数返回时,执行出栈。
递归的空间复杂度也是线性的,如果递归的深度是n,那么空间复杂度就是O(n)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。