计算时间复杂度

计算时间复杂度的式子:T(n)=O(f(n))

n是问题的规模

f(n)是关于问题规模的某个函数

T(n)是算法的时间复杂度

计算方法:

1,用常数1取代运行中的所有加法常数

2,在修改后的运行次数函数中,只保留最高阶项

3,如果最后阶项存在,而且不是1,就去掉最高阶的常数系数

例如:

int n=10;//因为是常数项,所以只执行一次
for(int i=0;i<n;i++)
{
     //C行代码
}//执行C*n次

结果:1, f(n)=C*n+1

2, T(n)=O(C*n)

3 ,T(n)=O(n) 时间复杂度为线性阶

int n=10;
for(int i=0;i<n;i++)//外层循环执行n次
{
     x行代码
    for(int j=0;j<n;j++)//每执行一次外层循环,就执行n次内层循环
    {   
         y行代码
    }
}

结果:1,f(n)=x*n+n*y*n

2, T(n)=O(n*y*n)

3, T(n)=O(n^2) 时间复杂度为平方阶

循环结构的时间复杂度是:循环结构体的时间复杂度*该循环运行的次数

时间复杂度的排列:

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2)<O(n^3)<O(2^n)<O(n!)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值