目录
一.时间复杂度
1.定义
2.推导大O阶的方法
3.常数阶
4.线性阶
5.对数阶
6.平方阶
7.举例
二.空间复杂度
1.定义
2.举例
一.时间复杂度
1.定义
在进行算法分析时语句的总执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法时间复杂度,也就是算法的时间量度,记作:T(n)=O(t(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。
用大写O()来体现算法时间复杂度,成为大O记法。随n(问题规模)的增大,T(n)的增长最慢的成为最优算法。
2.推导大O阶的方法
(1)用常数1取代运行时间中的所有加法常数。
(2)在修改的运行次数函数中,只保留最高阶项。
(3)如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。
3.常数阶
举例:
//顺序结构
#include<stdio.h>
int main(){
char c=97;
printf("c=%d\n",c);