数据结构——算法的基本概念

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

一、算法的特性

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

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

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

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

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

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

二、算法设计的要求

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

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

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

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

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

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

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

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

 

转载于:https://www.cnblogs.com/Smilodon/archive/2013/06/04/3118055.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值