zoukankan      html  css  js  c++  java
  • 算法和算法分析

    1、算法的性质

    有穷性、能行性、确定性、终止性、输入/输出。

    2、算法的描述

    自然语言(容易歧义)

    自然语言+数学公式(简单方便,还是歧义)

    严格形式描述(比如图灵机模型,非常麻烦,难以阅读)

    类似编程语言描述

    伪代码的形式

    3、6种算法设计模式

      枚举法(枚举全部、找出最优解)、

      贪心法(根据已有信息,先部分求解,再基于部分得到完整的解)、

      分治法(将一个复杂问题化解为很多简单的子问题,对这些子问题分别求解,并组合起来得到复杂问题的解)、

      动态规划法(对于一些复杂的问题,不能一下求解出来。在求解步骤中,不断积累已知信息,然后动态选择已知的最好求解路径)、

      回溯法(通过探索方式求解,当选择一个方向探索时发现无解,就回溯到前面探索的那个路口往其他方向继续探索,直到得出解)、

      分支界限法(回溯法的改良版本,它是在探索的过程中,根据已知的信息如果发现这个选择是错误的,就及早将其删除,用来缩小求解空间,加速问题求解的过程)。

    4、算法分析

      算法是在有限的时间里一步步执行某些任务和过程,算法分析的主要任务:分析算法占用的空间资源跟时间资源。

    5、大O分析法,

      1、原子操作数量t与算法真实运行时间成正比。

      2、把算法和函数 f(n) 像联系,把原子操作的数量 t 描述为输入大小n的函数 f(n) ,大O分析法。

      3、对于输入相等大小但是不相同的输入,算法的运算速度可能不一样。平均情况分析需要针对于这种情况定义一组输入的概率分布。这个过程需要涉及复杂的概率理论。一般按     照的是算法运行的最坏情况下时间表示输入大小为n的函数。

      4、对数函数涉及微积分的运用

      5、原子值和原子操作,原子操作数量t与算法真实运行时间成正比,而执行操作消耗的时间O(1)常数时间(最低的时间复杂度耗时/耗空间与输入数据大小无关

     

  • 相关阅读:
    【转】SQL时间函数
    C#操作Word完全方法
    出水芙蓉,风华绝代记民国才女林徽因
    梅超风:我就是那个多年以前的女子
    厉胜男
    南海恶神
    挪窝
    吴若权——洛可可动画电影馆
    美的慢箭
    机械公敌(I, Robot) 场景设定
  • 原文地址:https://www.cnblogs.com/yinminbo/p/11301238.html
Copyright © 2011-2022 走看看