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的增大,它会越来越优于另一算法,或者越来越差于另一算法。

  • 相关阅读:
    python第四十二天 socket ---ssh
    python第四十一天---作业:简单FTP
    python第三十七天--异常--socket
    python第三十六天-----类中的特殊成员方法
    python第三十五天-----作业完成--学校选课系统
    python第三十三天----静态方法、类方法、属性方法
    RESTful Web Services初探
    OLAT & OLTP
    Solr4.8.0源码分析(7)之Solr SPI
    Solr4.8.0源码分析(6)之非排序查询
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9489766.html
Copyright © 2011-2022 走看看