2020考研初试的时间已经越来越近了,大家的专业课的复习也要抓紧了,报考计算机的小伙伴要考哪些知识呢?跟着天任启航一起来看看时间与空间复杂度的知识点吧!
首先我们来看一下数据结构的一些基本的概念
数据:描述客观事实的符号,是计算机中可以操作的对象,能被计算机识别,并输给计算机处理的符号集合。
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被成为记录。、
数据对象:是性质相同数据元素的集合,是数据的一个子集
数据项:一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。可分为逻辑结构和物理结构。
算法:解决特定问题的步骤的描述
特性:
输入:有零个输入或者多个输
输出:只有一个或者多个输出
有穷型性:算法在执行有限个步骤时,会自动结束而不会陷入无限循环里面
确定性:算法的每一步都有确定的含义而不会出现二义性
可行性:算法的每一步都可以通过有限次数完成。
时间复杂度
具体所指的就是算法执行所要耗费的时间。在一段程序中每条代码都需要执行时间,代码执行次数越多,程序耗费的时间也就越长,效率也就越差,因此写代码时需要提高代码的执行效率。来看下时间复杂度的一些参数,平均情况下,时间复杂度为O(n^2),类似的还有线性阶O(n),
对数阶O(log2 n), 线性对数阶O(n log2 n), 平方阶O(n^2),指数阶O(2^n)。
空间复杂度
空间复杂度是指一个算法在运行过程中占用临时存储空间大小的量度。程序保存所需要的存储空间,即程序的大小。程序在执行过程中所需要消耗的存储空间资源,例如,程序在执行过程中的中间变量
,以上两个方面的描述体现在代码中输入数据和辅助变量所占用的空间。算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表中的调用函数传递而来的。存储算法本身所占用的存储空间与算法书写的长短成正比,要压缩这方面的存储空间,就必须编写出较短的算法。算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n)=
O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。
一个算法的时间复杂度和空间复杂度是相互影响的,如果想要一个好的时间复杂度,空间复杂度性能可能就会变差,反之也一样。
斐波那锲数列代码:
时间复杂度为O(2^n),空间复杂度为O(n);
文中图片素材来源网络,如有侵权请联系删除