1、数据结构概念:
数据结构
(Data Structure)
是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
2、算法概念:
算法
(Algorithm):
就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
3.算法效率:
算法效率一般分两种,第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。
4.时间复杂度概念:
算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。算法中的基本操作的执行次数,为算法的时间复杂度。
5.大O的渐进表示法:
是用于描述函数渐进行为的数学符号。
推导大O渐进表示法:
1
、用常数
1
取代运行时间中的所有加法常数。
2
、在修改后的运行次数函数中,只保留最高阶项。
3
、如果最高阶项存在且不是
1
,则去除与这个项目相乘的常数。得到的结果就是大
O
阶。
6.空间复杂度:
空间复杂度是对一个算法在运行过程中
临时占用存储空间大小的量度
。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复杂度类似,也使用大
O
渐进表示法
。
小结:
1、0(1) 不是代表算法运行一次,是常数次
2、当一个算法随着输入不同,时间复杂度不同,时间复杂度做悲观预期,看最坏的情况
3、斐波那契数列时间时间复杂度 O(2^N)
4、空间复杂度也是一个数学函数表达式,是对一个算法在运行过程中临时额外占用存储空间的大小
5、空间复杂度计算的是变量的个数
6、空间是可以重复利用,不累计的
7、时间是一去不复返,累计的