时间复杂度和空间复杂度

时间:2022-06-19 17:08:24

时间复杂度和空间复杂度

时间复杂度:同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。

计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

空间复杂度是对一个算法在运行过程中额外占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序时间复杂度O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量

1:

 时间复杂度和空间复杂度

时间复杂度:n,n-1,n-2,...,2,1   则为O(n)

空间复杂度:递归n次       则为O(n)

2

 时间复杂度和空间复杂度

时间复杂度:n,n-1,n-2,...,2,1   则为O(n)

空间复杂度:递归n次       则为O(n)

 

3

 时间复杂度和空间复杂度

时间复杂度:n,n/2,n/4,n/8,...,1   则为O(log n)

空间复杂度:递归log n次       则为O(log n)