二、谈谈算法

来源:互联网 发布:mysql 重命名字段 编辑:程序博客网 时间:2024/06/07 00:29

1、算法定义
数据结构和算法有类似的关系。
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。【课本说法】
也就是解决程序的技巧和方式。

2、算法初体验:
例:计算1+2+……+100
传统循环计算:

int i,sum=0,n=100;for (i=1;i<=n;i++){Sum+=i;}cout<<sum<<endl;

-用高斯先生的算法,可以这么写:

int i,sum=0,n=100;sum=(1+n)*n/2;cout<<sum<<endl;

3、算法的特性
算法的五个基本特征:输入、输出、有穷性、确定性、可行性
 (1)算法具有零个或多个输入。
 (2)算法至少有一个或多个输出。输出形式可以是打印形式,也可以是返回值。
 (3)有穷性:
算法执行有限的步骤之后,自动结束而不会无限循环。
并且每一个步骤在可接受的时间内完成。
 (4)确定性:
算法的每一个步骤都具有确定的含义,不会出现二义性。
算法在一定条件下只有一条执行路径,相同的输入只能有唯一的输出结果。
算法的每个步骤都应该被精确定义而无歧义。
 (5)可行性:
算法的每一步都必须可行,每一步都能够通过执行有限次数完成。【否则必须注明执行所要求的环境】

算法变幻无穷,并不唯一。同一问题可以有多种解决的算法。

4、算法设计的要求:
(1)正确性:算法至少应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求、得到正确答案。
大体分为以下四个层次:
 没有语法错误
 对合法输入能产生满足要求的输出
 对非法输入能产生满足规格的说明
 对故意刁难的测试输入都有满足要求的输出结果

(2)可读性:算法得便于阅读、理解和交流。写代码的目的,一方面是为了让计算机执行,另一方面也得便于他人阅读和自己日后阅读修改。
(3)健壮性:输入数据不合法时,算法也能做相关处理,而不是产生异常、崩溃或其他莫名其妙的结果。
(4)时间效率高&存储量低

0 0
原创粉丝点击