时间复杂度简述

 

时间复杂度定义:

 

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

 

特别注意,时间复杂度只考虑高阶项,而且不保留其系数。

 

 

时间复杂度计算方法:

一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n)。

 

 

分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。

举例:

 

for(i=1;i<=n;++i)

{

for(j=1;j<=n;++j)

{

c[i][j]=0;//该步骤属于基本操作执行次数:n的平方次

for(k=1;k<=n;++k)

c[i][j]+=a[i][k]*b[k][j];//该步骤属于基本操作执行次数:n的三次方次

} }

 

 

 

关于这个代码,

则有 T(n) = n 的平方+n的三次方,根据上面括号里的同数量级,我们可以确定 n的三次方 为T(n)的同数量级

则有 f(n) = n的三次方,然后根据 T(n)/f(n) 求极限可得到常数c

 

则该算法的时间复杂度:T(n) = O(n^3) 注:n^3即是n的3次方。

 

 

 

而下一个:

int Fun(int n)

{

 

 

if(n=0||n=)

 

return 1;

else

return Fun(n/2)+1;}

 

这个代码时间复杂度就是n。

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值