第二章 算法
1.算法+数据结构=程序
2.算法
(1)广义定义
为解决一个问题而采取的方法和步骤
(2)计算机算法类别
①数值运算算法—目的—→求数值解——往往有现成模型,算法较成熟
②非数值运算算法—目的—→范围很广,最常见的是用于事务管理领域
(3)特性
①有穷性:有限的操作步骤
②确定性:每一步骤是确定的
③有零个或多个输入:输入指在执行算法时需要从外界获取的必要信息
④有一个或多个输出:算法的目的就是为了求解,“解”就是输出
⑤有效性:算法中的每一个步骤都应当能有效地执行
(4)表示方法
1、自然语言;
通俗易懂,但文字冗长,容易出现歧义
2、传统流程图;
①直观形象,易于理解
②弊端:对流程线的使用没有严格限制,容易形成BS型算法(a bowl of spaghetti一碗面条)
③三种基本结构(Bohra和Jacopini提出)
a、类别
b、三基本结构共同特点:(只要具备这四点都可作为基本结构)
①只有一个入口;
②只有一个出口;
③结构内每一部分都有机会被执行到;
④结构内不存在死循环
3、结构化流程图(I.Nassi和B.Shneiderman提出)
N-S流程图/盒图
4、伪代码