zoukankan      html  css  js  c++  java
  • 数据结构——算法的基本概念

      算法——算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。如果说数据结构只是一些数据的组合,没有什么实际意义,那么算法就是这些数据的灵魂。

    一、算法的特性

      算法具有输入、输出、有穷性、确定性和可行性五个特征。

        (1)输入输出——算法具有零个或者多个输入,至少有一个或者有多个输出。

        (2)有穷性——指算法在执行有限的步骤后,自动结束而不会出现无限循环,并且每一个步骤在可接受的额时间内完成。还指算法在人们可以接受的时间范围内有穷

          在数学逻辑上有穷是无效的,因为不符合现实。

        (3)确定性——算法的每一个步骤都具有确定的含义,不会出现二义性。算法在一定的条件下,只有一条执行路径。

        (4)可行性——算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

    二、算法设计的要求

      算法的特性可以说一个算法的基本要求,满足以上特性才能算一个有效的算法,那么满足一下要求,才能算是一个优秀的算法

        (1)正确性——指算法至少因该具有输入、输出和加工处理无歧义性、能正确反应问题的需求、能够够得到问题的正确答案。正确性大致分为以下四个层次

      • 算法程序没有语法错误。
      • 算法程序对于合法的输入数据能够得出满足要求的输出结果。
      • 算法程序对于非法的输入数据能够得出满足规格说明的结果。
      • 算法程序对于精心选择的,甚至刁难的测试都有满足要求的输出结果

        以上四个层次依次递增,前三个层次可以达到,第四个层次达到比较难,所以一般情况下把层次三作为一个算法是否正确的标准。

         (2)可读性——算法设计的另一目的就是为了便于阅读、理解和交流。

        成熟的代码可以方便别人进行阅读和理解,一个算法写的再好,以后自己都看不懂了,就不是一个好的算法。 

        (3)健壮性——当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。

        (4)效率性——是指时间效率高和存储量低,这样才是一个高效率的算法。     

  • 相关阅读:
    WCF 第六章 序列化和编码 使用IExtensibleDataObject 的双向序列化
    如何获取SQLite最新版本及SQLite数据库中的SQL语句解说
    WCF 第六章 序列化与编码 编码选择
    WCF 第七章 寄宿 定义服务和终结点地址
    WCF 第七章 寄宿 总结
    WCF 第六章 序列化和编码 为自定义序列化使用XmlSerializer
    常用的Vi命令 记得:* . / 需要转义
    25日
    一张图 拯救你的 .net 调用Excel
    切莫误人子弟
  • 原文地址:https://www.cnblogs.com/Smilodon/p/3118055.html
Copyright © 2011-2022 走看看