算法效率评判标准
时间复杂度
空间复杂度
空间复杂度
算法执行过程中所需要的额外空间与问题规模n之间的函数关系
malloc–>n
递归–>n
时间复杂度
算法中最基本的操作执行的次数与问题规模n之间的关系
运行算法所消耗的工作量与问题规模之间的函数关系,选
择一个对于所研究问题的最基本的原操作,然后去计算该
操作重复执行的次数(与问题规模相关)
时间复杂度遵循的原则
1、去掉常数
2、去掉系数
3、取最高项
举例说明:
O(1)
void fun()
{
printf("hello world\n");
}
O(n)
void fun(int n)
{
for(int i=0;i<n:++i)
{
….
}
}
O(n)
void fun(int n)
{
for(int i=0;i<n:++i)
{
….
}
for(int i=0;i<n:++i)
{
….
}
}
O(n)
void fun(int n)
{
for(int i=0;i<n:i