数据结构-算法与算法描述

算法是数据加工的核心部分

什么是算法?
-算法是规则的有限集合,是为解决特定问题而规定的一系列操作

算法的特性
-有限性:有限步骤之内正常结束,不能形成无穷循环
-确定性:算法中的每一个步骤必须有确定含义,无二义性,二义=二意,不能有第二种意思,例如开学,是秋季的开学还是春季
-输入:有多个或0个输入
-输出:至少有一个或多个输出,算法是为了解决特定问题,所以解决问题必须要有输出,输出不一定是打印,也可以求解,带出,完成某些操作都可以是输出
-可行性:原则上能精确进行,操作可通过已实现的基本运算执行有限次(时间内)而完成

算法设计的要求

-算法的正确性,正确性有三个等级
    -所设计的程序对于几组输入数据能够得出满足要求的结果
    -所设计的程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得到满足的要求的结果
    -程序对于一切合法的输入数据都能产生满足要求的结果

例如:
在这里插入图片描述

-可读性
    -一个好的算法首先应该便于人们阅读并理解和相互交流,其次才是机器的可执行性。可读性好的算法有助于人对算法的理解,难懂的算法易于隐藏错误且难于调试和修改


-健壮性(鲁棒性)
    -在非法输入的情况下,也能够产生合理的回应,即对非法输入的抵抗能力。他强调即使输入非法数据,算法应能加以识别并且作出处理,而不是产生误动作或陷入瘫痪


-高效率和低存储量
    -算法的效率通常是指算法的执行时间。对于一个具体的问题的解决通常可以有多个算法,对于执行时间短的算法其效率就高
    -所谓存储量的需求,是指算法在执行过程中需要的最大存储空间,这两者都与问题的规模有关。
    -在设计和使用算法的时候,要注意高效率和低存储量的平衡配合使用,当然越低越好

程序:是算法在计算机的体现

-算法描述
    -算法可以使用自然语言、框图、高级语言描述
        -使用自然语言简单,但是有二义
        -使用框图易表达处理流程,但是难表达数据流程
        -高级语言准确但细节过多
    -因此采用类语言来描述算法
        -类语言接近于高级语言而不是严格的高级语言
        -具有高级语言的一般语句规格,撇掉语言中的细节,把注意力主要集中在算法处理步骤和本身的描述上

例如:

if (<表达式>)    语句:
else    语句2

要点:
-掌握算法的定义与特性
-力争做出解决一类问题的优秀算法
-算法描述类语言,突出处理过程思路

提醒:不同语言要使用不同的类语言描述方法


版权声明:本文为yinghua1234原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。