空间复杂度举例 如何计算一个算法的时间复杂度和空间复杂度?
如何计算一个算法的时间复杂度和空间复杂度?
它是根据一个程序的数据n的大小来显示它所使用的时间和空间的近似值
说白了,它是显示时间或空间是如何随着n的增长而增长的
例如
for(int i=0 i
这个循环执行了n次,所以时间复杂度是O(n)
for(int i=0 i
{
for(int j)=0j
}]这个嵌套的两个循环,时间复杂度是O(n^2)
时间复杂度只能粗略地表示所用的时间
而且一些基本步骤的运行时间是不同的,所以我们无法计算,所以我们省略了
例如
for(int i=0I
a=b
and
for(int i=0I
运行时间当然是第二快的,但是它们的时间复杂度是相同的O(n)
判断时间复杂度,看循环
时间复杂度是程序的运行时间,这也可以说是次数;
空间复杂度是程序所占用的空间;
以下程序:
int a[1000000
]int CNT=0
for(int i=0 i
for(int j=0 j
a[CNT]=0
空间主要是一个大小为1000000的数组a;时间复杂度是两个for循环。第一个循环要做一次,第二个循环要做1000次,第一个循环要做1000次,一共1000×1000次
如果两个循环分别对应m和N次,那么要做的次数就是m*N
你能听懂前两句话吗?
什么叫时间复杂度和空间复杂度?
当计算机完成任务时,它有两个指示器:时间和所有内存(即空间)。两者呈负相关。也就是说,在设计特定的程序时,可以选择使用更多的内存,这样可以提高程序的速度,也就是减少程序的运行时间。另一方面,也可以选择使用较少的内存,这样可以节省内存,但同时,程序运行速度会变慢,这意味着程序运行时间会更长。总之,该算法只有两种策略,一种是以时间换空间,另一种是以空间换时间。直接答案是高空间复杂度和低时间复杂度的算法,反之亦然。
空间复杂度举例 从1加到n的算法的时间复杂度 时间复杂度怎么计算方法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。