zoukankan      html  css  js  c++  java
  • 第四课 程序灵魂的审判

      当两个算法都能满足我们的需要时,我们在工程中更关心什么呢?

    性价比(效率)是工程中最关注的算法附加特性。

      怎么比较两个算法的效率呢?

    1、事后统计法

      比较不同算法对同一组输入数据的运行处理时间

      缺陷:

        为了获得不同算法的运行时间必须编写相应的程序

        运行时间严重依赖硬件以及运行时的环境因素

        算法测试数据的选取相当困难

    2、事前分析估算

      依据统计的方法对算法效率进行估算

      影响算法效率的主要因素

        1、算法采用的策略和方法

        2、问题的输入规模

        3、编译器所产生的代码

        4、计算机执行速度

     算法效率的简单估算1:

    这里的n就是问题的规模。算法的总步骤为2n+4次。

    算法效率的简单估算2:

    算法的总步骤为n+2。

    算法效率的简单估算3:

    启示:

      三种求和算法中关键部分的操作数量分别为2n、n、1。

      随着问题规模n的增大,它们操作数量的差异会越来越大,因此,实际算法在效率上的差异也会变得非常明显。

     问题规模与操作数量:

    算法操作数量的对比:

    A~和B~分别是A和B的变种表达式。

    下面再看一个算法操作数量的对比:

    再次考察一个算法操作数量对比:

    结论:

      算法的度量有事后统计法和事前分析法

      事后统计法不容易准确度量算法的效率

      事前分析估算法通过操作数量度量算法效率

      判断一个算法效率时只需要关注最高阶项就能得出结论

    某个算法,随着问题规模n的增大,它会越来越优于另一算法,或者越来越差于另一算法。

  • 相关阅读:
    加密的PDF文件怎么查看
    SQL Server数据库中怎么加密数据
    虚拟磁盘也加密
    怎么用密码保护您的文件夹
    如何用cmd命令加密文件夹
    快压轻松创建加密压缩包
    GPS学习的一些链接
    【最新软件预告】邮件群发器Console版
    第六格很酷的滚动活动会员条
    邀请您加入移动开发专家联盟
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9489766.html
Copyright © 2011-2022 走看看