计算机什么是空间复杂度,计算机考研:时间复杂度和空间复杂度

只有当我们熟练掌握了基础知识,才能更好地复习,那备考的你是否开始做题巩固知识点了呢?河北中公考研为大家整理了“计算机考研:时间复杂度和空间复杂度”,希望有需要的朋友能够认真阅读。

一、算法的时间复杂度

算法的时间量度指的是算法中基本操作重复执行的次数。

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作T(n)=O(f(n)),通常称为时间复杂度,其中O的形式定义为:若f(n)是正整数n的一个函数,则xn=O(f(n))表示存在一个正的常数M,使得当n≥n0时都满足|xn|≤M|f (n)|。

注意:基本操作是其重复执行的次数和算法的执行时间成正比的原操作,多数情况下它是最深层循环内的语句中的原操作,它的执行次数和包含它的语句的频度是相同的。语句的频度指的是该语句重复执行的次数。

二、算法的时间复杂度

类似于算法的时间复杂度,以空间复杂度作为算法所需存储空间的量度,记作S(n)=O(f(n))。其中n为问题的规模。一个上机执行的程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的额外空间。

算法原地工作指的是额外空间相对于输入数据量来说是常数。

接下来我们以一个简单的小程序段来分析时间复杂度和空间复杂度,例如将一维数组中的元素逆置存放的算法如下:

RevArray1(int a[ ],int n)

{

int i,j,t;

for(i=0,j=n-1;i

{ t=a[i];

a[i]=a[j];

a[j]=t;

}

}

分析该算法,由于基本语句就是循环内的交换语句,共执行了n/2次,所以T(n) = n/2 = O(n)。又因为算法的辅助空间只是i、j、t,3个临时变量的空间,所以S(n) = 3 = O(1)。而因为这里使用的辅助空间,不会随着问题的规模变化而变化,简而言之,就是常量级别的,我们就称其为原地工作。

暑期虽然是考研黄金备考期,但是由于暑期天气炎热,学校放假等,暑期备考承受很多的艰辛和压力,但是相信大家都坚持下来了。接下来的备考也是非常艰难的一段时光,希望同学们都能放平心态,不忘初心,抓住黄金备考期!

河北中公考研分享的“计算机考研:时间复杂度和空间复杂度”内容已完毕,精彩也会继续,也希望大家能持续关注河北中公考研专业课资料!有任何需求可以关注我们任何平台,进行留言或者私聊小编。

推荐阅读》》》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值