第二章算法a1 gorithm 2.1算法的概念 ■2.2简单算法举例 2.3算法的特性 2.4算法的表示 2.5结构化程序设计方法
第二章 算法 algorithm ◼ 2.1 算法的概念 ◼ 2.2 简单算法举例 ◼ 2.3 算法的特性 ◼ 2.4 算法的表示 ◼ 2.5 结构化程序设计方法
2.1算法的概念 例:求1+2+3++100=? 1、1+2,再加3,再加4.,最后加100,等于5050 2、100+(1+99)+(2+98)+.+(49+51)+50=100+49*100+50=5050 对操作的描述 程序=数据结构+算法 对数据的描述 算法分类: 数值运算算法一用于求数值解(如:求方程的根… ■非数值运算算法 多用于管理领域(如:图书管理、人事管理.)
2.1 算法的概念 程序=数据结构+算法 对数据的描述 对操作的描述 算法分类: ◼数值运算算法 ---- 用于求数值解(如:求方程的根…) ◼非数值运算算法 ---- 多用于管理领域(如:图书管理、人事管理…) 例:求1+2+3+…+100=? 1、1+2,再加3,再加4….,最后加100,等于5050 2、100+(1+99)+(2+98)+…+(49+51)+50=100+49*100+50=5050
2.2简单算法举例 例:求两个数的和 #include <stdio. h> stepl:给定两个数的值 void main( 输出结果: step2:做加法运算 i int x, y, z; step3:将结果保存 y=3 2+3=5 step4:输出结果 Tx+y step1:2→x,3y printf(《z%dⅦn”,z); step2: X+y (2+3) printf(“%d+%d=%dn”,x,y,z); step3:5→z step4:输出z
2.2 简单算法举例 例:求两个数的和 step1:给定两个数的值 step2:做加法运算 step3:将结果保存 step4:输出结果 step1:2 → x ,3 → y step2:x+y (2+3) step3:5 → z step4:输出 z #include <stdio.h> void main( ) { int x, y, z; x=2; y=3; z=x+y; printf(“z=%d\n”, z); printf(“%d+%d=%d\n”, x, y, z); } 输出结果: z=5 2+3=5
2.3算法的特性 有穷性:一个算法包含有限的操作步骤 2.确定性:算法中的每一个步骤是确定的,含义是唯一的 3.有零个或多个输入 4.有一个或多个输出 5.有效性:算法中每一个步骤应能有效运行
2.3 算法的特性 1. 有穷性:一个算法包含有限的操作步骤 2. 确定性:算法中的每一个步骤是确定的,含义是唯一的 3. 有零个或多个输入 4. 有一个或多个输出 5. 有效性:算法中每一个步骤应能有效运行
2.4算法的表示 1.用自然语言表示 优点是使用日常用语,通俗易懂 缺点是文字冗长,容易出现歧义 2.用流程图表示:用图框表示各种操作 优点是直观形象,易于理解
2.4 算法的表示 1. 用自然语言表示 优点是使用日常用语, 通俗易懂 缺点是文字冗长, 容易出现歧义 2. 用流程图表示: 用图框表示各种操作 优点是直观形象, 易于理解