算法的复杂度是指
1. 算法复杂度
算法的复杂度是以什么来度量的?
算法的复杂度是以时间复杂度和空间复杂度来计算的。
①算法的时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。简单地说,时间复杂度是以时间来衡量的。一般来说,如果算法运行的时间越长,时间复杂度也就越高。但是同一个算法,它的运行时间也受到硬件设备的限制,硬件设备越好,运行时间越短。所以在衡量时间复杂度的时候,我们根据算法的基本语句来求解。
值得注意的是:算法程序执行的具体时间和算法的时间复杂度并不是一致的。算法程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节的影响。而算法的时间复杂度与这些因素无关。
算法的计算工作量是用算法所执行的基本运算次数来度量的。算法所执行的基本运算次数与问题的规模有关,而算法所执行的基本运算次数是问题规模(通常用整数n表示)的函数。所谓问题规模就是问题的计算量的大小。
在具体分析一个算法的工作量时,在同一个问题规模下,算法所执行的基本运算次数还可能与特定的输入有关。即输入不同时,算法所执行的基本运算次数不同。
②算法的空间复杂度
算法的空间复杂度是指执行这个算法所需要的内存空间。简单地说,空间复杂度是算法在运行时临时占用内存空间大小的量度。
算法执行期间所需的存储空间包括3个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。其中,额外空间包括算法程序执行过程中的工作单元,以及某种数据结构所需要的附加存储空间。
如果额外空间量相对于问题规模(即输入数据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。
为了降低算法的空间复杂度,主要应减少输入所占的存储空间以及额外空间,通常采用压缩存储技术。
总结:
采用不同的存储结构,其数据处理的效率是不同的。因此,在进行数据处理时,选择合适的存储结构很重要。
2. (21) 算法的空间复杂度是指______。
(21)[答案]D
[考点]程序设计基础
[评析]
时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。
空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
算法为什么会占用存储存空间?
主要是内存空间,因为算法中的变量、地址等等通常保存在内存中(如果在虚存、缓存,甚至已在CPU中运行,也算占用了存储空间)。