求解时间复杂度

        算法复杂度分为时间复杂度和空间复杂度。 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。复杂度的大小可以分为:O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)
        那么,时间复杂度需要怎样计算呢!
【平行循环】
        一个算法的时间复杂度要看这个算法的执行次数,首先要找这个方法的基础语句,算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。
        两个或者多个平行循环,它的时间复杂度是取这几个循环中循环次数最多的那个循环的循环次数来做这个算法的时间复杂度。
for(i=0;i<n;i++)
{
    b[i][0]=0;
}
for(j=0;j<5;j++)
{
    b[0][j]=0;
}
则这个算法的时间复杂度为O(n)
【嵌套循环】
        嵌套循环的时间复杂度则是,将一个嵌套循环中的所有循环的复杂度的积
for(i=0;i<n;i++)
{
    d[i]=0;
    for(j=0;j<n;j++)
    {
        s[i][j]=0;
    }
}
则这个算法的时间复杂度为O(n2)
        也有一些嵌套循环中的单个循环的时间复杂度不想同的,这样的不影响按照嵌套循环的方法求解其时间复杂度
for(i=0;i<n;i++)
{
    d[i]=0;
    for(j=0;j<m;j++)
    {
        s[i][j]=0;
    }
}
则这个算法的时间复杂度为O(mn)
【While循环】
        while循环则是没有写到的 O(log2n)的循环体了。
i=1; 
while (i<=n)
    i=i*2; 
则这个算法的时间复杂度为 O(log2n)
【总结】
        时间复杂度的具体算法对于做题来说不用纠结的那么详细,这些也就够了。详细的说明可以参考http://blog.csdn.net/firefly_2002/article/details/8008987
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值