简化的算法时间复杂度分析

🤡🤡🤡接着上一篇文章《算法的时间复杂度、空间复杂度》,本篇学习简化的算法时间复杂度分析!内容不多,简简单单!🤩🤩🤩

算法的时间复杂度、空间复杂度http://t.csdn.cn/2V9Yh

🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥🐥


一、👻前言

        对于我们编写的算法,我们有必要去分析去时间复杂度,即分析它的运行效率,而运行效率又取决于算法的运行次数。一个好的算法,它应该是运行时间短的,占用内存空间小的,学会了如何去分析算法的时间复杂度并计算出大概的结果,这有助于我们编写出更优的算法,这也是作为一个好的程序员必备的技能。

        但是一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。

二、😇何为简化的算法时间复杂度分析

        在通常中,我们计算一个算法的时间复杂度,都在一步一步的分析每一行代码的运行次数,然后把它们加起来,最后计算出算法频度T(n),得出时间复杂度。

        但是这种方法太过于繁琐,耗时长,往往我们不会愿意花太多的时间进去这样计算算法的时间的复杂度,所以有必要简化计算的步骤。

那么何为简化?(●'◡'●)

  • 仅仅考虑算法中的基本操作,即算法中最深层循环内的原操作。
  • 算法执行时间大致=基本操作所需时间*其运行次数

        所以在算法分析中,计算T(n)时仅仅考虑基本操作的执行次数。

例如下面这个算法:

void matrixadd(int[][] A,int[][] B,int[][] C,int n)
{
    for(int i=o;i<n;i++)
        for(int j=0;j<n;j++)
            C[i][j]=A[i][j]+B[i][j];  //只考虑该原操作
}

        我们可以看到,该算法一共两个for循环语句,而每个执行n+1次,最后一行代码为原操作,那么我们的算法频度即为T(n)=n^2

对应的时间复杂度为:O(n^2)

具体计算:

gif.latex?T%28n%29%3D%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7D%5Csum_%7Bj%3D0%7D%5E%7Bn-1%7D1%3D%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7D%28n-1-0&plus;1%29%3D%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7Dn%3D%5Cfrac%7B%28n-1%29n%7D%7B2%7D%3D%5Cfrac%7B1%7D%7B2%7Dn%5E%7B2%7D-%5Cfrac%7B1%7D%7B2%7Dn%3DO%28n%5E2%29

 你学废了吗?小玥早就废了!!!

🐷🐷🐷♥(。→v←。)♥🐷🐷🐷

 

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来玥方长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值