2025考研
当前位置:首页 > 考研备考 > 专业课指导 > 计算机

考研考点整理:数据结构 时间复杂度和空间复杂度

算法是对某些问题求解方法(步骤)的一种描述,它是指令的有限序列,其中的每条操作表示一个或多个指令。

一般一个算法具有以下特性:

有穷性:一个算法必须在执行有穷步之后结束,且每一步在有穷时间内完成。

确定性:算法中的每条指令都有确切的含义,对于相同的输入只能得到相同的输出。

可行性:算法中的操作都可以通过已经实现的基本运算执行有限次实现。

输入:一个算法有零个或多个输入,所谓零个输入是指算法本身定出了初始条件。

输出:一个算法有一个或多个输出,没有输出的算法是毫无意义的。

评价一个好算法,应考虑以下方面:

正确性

可读性

健壮性:输入非法数据时,算法应适当地做出做出反应或进行处理,而不是输出莫名其妙的结果。

效率和存储量的需求:效率是算法执行的时间,存储量是算法执行是所需要的最大存储空间。此两者都与问题的规模有关。

算法的效率:时间复杂度

算法中,基本操作重复执行的次数是问题规模n的某个函数f(n),其时间量度记作T(n)=O(f(n)),称为算法的渐进时间复杂度,简称时间复杂度。

一般的,常用最深层循环的语句中原操作的执行频度来表示。

O的定义:若f(n)是正整数n的一个函数,则O(f(n))表示∃M≥0,使得当n≥n0时,|O(f(n))|≤M|f(n)|。

表示时间复杂度的阶有以下几种:

O(1):常量时间阶

O(n):线性时间阶

O(log2n):对数时间阶

O(nlog2n):线性对数时间阶

以下六种计算算法时间复杂度的多项式是最常见的,其关系为(n趋于正无穷大求极限)O(1)

指数时间的关系为O(2n)

在考研中,时间复杂度的计算主要包括循环、递归等形式,具体类型有常量阶、对数阶、线性阶、线性对数阶等计算。

结合真题,本小节在单选题中主要是给定一个程序,分析程序的时间复杂度;在算法题中,分析我们所设计的算法时间复杂度。

算法的效率:空间复杂度

空间复杂度是指算法编写成程序后,在计算机中运行时所需存储空间大小的度量。记作S(n)=O(f(n)),其中n为问题的规模。

空间复杂度的度量

指令常数变量所占用的存储空间

输入数据所占用的存储空间

辅助(存储)空间

一般的,空间复杂度指的是辅助空间的大小。

比如空间复杂度是常量时,空间复杂度是O(1),表示就地空间。

比如一维数组a[n]:空间复杂度为O(n)。

比如二维数组a[n][m]:空间复杂度为O(n×m)。

结合真题,本小节在单选题中目前没有考察,主要考察方式是在算法设计题中,分析我们所设计的算法的空间复杂度。

查看全文

【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

上一篇:考研考点整理:数据结构 绪论(考点篇) 下一篇:考研择校择专业:计算机交叉学科有什么?

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。

精选课程

考研资讯

查看更多

                                         

考研备考

查看更多

考研指导

搜课程

热门搜索

搜索历史  

首页

课程

成长计划

研招

我的

每日10 份   抢先预约