时间复杂度和空间复杂度有什么区别

如题所述

计算机在完成一个任务的时候有两个指标,时间和所有内存(也就是空间)。这两者是负相关的。也就是说,当你设计一个特定程序时,你可以选择使用更多的内存,这样可以达到提高程序运行速度的目的,也就是减少程序运行时间。另一方面,你也可以选择使用较少的内存,这样可以节省内存但同时程序运行速度会变慢,也就是说程序运行要花费更多的时间。简言之,算法中只有两种策略,要么以时间换空间,要么以空间换时间。直接回答问题就是空间复杂度高的算法其时间复杂度低,反之亦然。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-07
算法的复杂度可分为俩种 一种时间复杂度 另一种是空间复杂度。
俩者的概念:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。
时间复杂度:
1:算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好地反映出算法的优劣与否;
2:算法执行时间需要依据该算法编制的程序在计算机上执行运行时所消耗的时间来度量,度量方法有两种,事后统计方法和事前分析估算方法,因为事后统计方法更多的依赖计算机的硬件,软件等环境因素,有时容易掩盖算法本身的优劣。因此常常采用事前分析估算的方法;
3:一个算法是由控制结构(顺序,分支,循环三种)和原操作(固有数据类型的操作)构成的,而算法时间取决于两者的综合效率;
4:一个算法花费的时间与算法中语句的执行次数成正比,执行次数越多,花费的时间就越多。一个算法中的执行次数称为语句频度或时间频度。记为T(n);
5:在时间频度中,n称为问题的规模,当n不断变化时,它所呈现出来的规律,我们称之为时间复杂度(其实在这中间引入了一个辅助函数f(n),但它与t(n)是同数量级函数,我们且先这样理解。)
6:在各种算法中,若算法中的语句执行次数为一个常数,则时间复杂度为o(1);同时,若不同算法的时间频度不一样,但他们的时间复杂度却可能是一样的,eg:T(n)=n^2+2n+4 与 T(n)=4n2+n+8,他们的时间频度显然不一样,但他们的时间复杂度却是一样的,均为O(n2),时间复杂度只关注最高数量级,且与之系数也没有关系。本回答被网友采纳
相似回答