1. 算法是什么
算法:一种计算的方法,在程序设计上,表现为一组指令序列。
输入->算法->输出
2. 如何评价算法
对于程序设计而言,无非就是两个方面:算法有多快?(时间效率);内存耗得多不多?(空间效率)
算法的复杂度分析,包括上述两个方面,各自称为时间复杂度分析和空间复杂度分析。通常我们更关注的是算法的时间复杂度。
设问题规模为n,即输入数据的大小,时间复杂度记为T(n)
比如n个输入数据,需要做2*n个基本运算,那么T(n) = 2*n
渐进时间复杂度
比如: T(n) = 2*n 则O(n)=n, 实际中就称算法时间复杂度为n
T(n)= 3*n2 则O(n)=n2, 实际中就称算法时间复杂度为n2
T(n) =3* log(n)则O(n)=log(n), 实际中就称算法时间复杂度为log(n)
空间复杂度分析
分析算法运行过程中所占用存储空间大小,其分析和时间复杂度类似。
如果使用1个基本空间单位,则空间复杂度为O(1)
如果使用n个基本空间单位,则空间复杂度为O(n)
这里说的空间复杂度实际中也是渐进空间复杂度。