数据结构-算法

1.算法的定义: 

算法是解决特定问题求解步骤的描述,在计算机中表现为制定的有限序列,并且每条指令表示一个或者多个操作。

2.算法的特性

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

   2)有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一步骤在可接受的时间内完成。

   3)确定性:算法的每一步骤都具有确定的意思,不会出现二义性。

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

3.算法设计的要求:

   1)正确性:算法的正确性是指算法至少应该具有输入输出和加工处理无歧义性,能正常反应问题的需求,能够得到问题的正确答案。

    算法正确性的四个层次: 

     a)算法程序没有语法错误                ---------------->算法程序要求最低的

     b)算法程序对于合法的输入数据能够产生满足要求的输出结果

     c)算法程序对于非法的输入数据能够得出满足规格说明的结果        --------->由于d很难达到,c作为一个算法是否正确的标准

     d)算法程序对于精心选择的,甚至刁难的测试数据都是满足要求的输出结果         -------------->算法程序要求最高的

    2)可读性:算法设计的另一个目的就是为了便于阅读,理解和交流。可读性是算法好坏的很重要的标准

    3)健壮性:当输入数据不合法时,算法也能做出相应的处理,而不是产生异常和莫名奇妙的结果

    4)时间效率高和存储量低:设计算法应该尽量满足该要求

4.算法效率的度量方法:

   1)事后统计的方法:由于事后统计缺陷太大,所以不适合

   2)事前分析估算方法:在计算机程序变成前,一句统计方法对算法进行估算。

      一个程序在计算机中运行所消耗时间取决于以下因素:

      a)算法采用的策略、方法             ------->算法好坏的根本

      b)编译产生的代码质量                 -------->软件来决定的

      c)问题的输入规模

      d)机器执行指令的速度                -------------->系统硬件的性能

由此可知,一个程序的运行时间依赖于算法的好坏和问题的输入规模。

在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或者是一系列的步骤

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 算法:算法是解决特定问题的求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作一:算法...
    梁炜东阅读 794评论 0 0
  • 数据结构,顾名思义,就是数据之间的结构关系,或者理解成数据元素相互之间存在的一种或多种特定关系的集合。 数据结构分...
    霸道总裁跟班阅读 1,731评论 0 0
  • 算法引入 如果 a+b+c=1000,且 a2+b2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的...
    薛皓哲阅读 262评论 0 0
  • ———秋燕 最近看了朋友写关于做家务的文章,很有感慨.也想说说家务的琐事. ...
    f65f37c8104a阅读 700评论 1 1
  • 再拼命的眨一眨眼 把眼泪挤出来 不要用手去擦 会破坏你的妆容 再抿一抿嘴 不要吝惜你的舌头 在泪水风干之前 将它卷...
    Imagine青阳阅读 199评论 0 3