时间复杂度
概念:算法中基本操作执行的次数和问题的规模n之间的函数关系记作O(f(n))
针对的是问题规模的增长率
求解算法的时间复杂度的基本步骤:
1、找出算法中的基本语句
算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体
2、计算基本语句的执行次数的数量级
只要保证基本语句执行次数的函数中的最高次幂正确即可
3、用O记号表示算法的时间性能
0(1):表示执行次数和常数和问题规模没有关系,这个常数也可以是1、100、1000等
注意:由于计算时间复杂度主要考察问题规模和执行的增长率问题,为了简单起见,不考虑系数
总结:1、只保留高阶项。2、不要系数
空间复杂度
概念:实现这个算法所需要的额外的辅助空间和问题规模n之间的函数关系
用空间换时间