
第2章算法设计基础
第 2 章 算法设计基础

程序设计的目的:计算机按照设定的执行流程完成指定任务。程序设计的关键:①对什么样的数据进行处理?明确处理对象,给出准确的数据化描述:元素之间的相互关系,组织数据的存根据需求,确定数据类型储结构。如何对数据进行处理?2明确对处理对象的操作流程:程序的指令组成和指令顺序
① 对什么样的数据进行处理 ? ◆明确处理对象,给出准确的数据化描述; ◆根据需求,确定数据类型、元素之间的相互关系,组织数据的存 储结构 。 ② 如何对数据进行处理 ? ◆明确对处理对象的操作流程; ◆程序的指令组成和指令顺序。 程序设计的目的:计算机按照设定的执行流程完成指定任务。 程序设计的关键:

程序=数据结构+ 算法数据结构:是对数据的描述。在C语言中,数据结构是以数据类型的形式出现的。算法:对数据处理的描述,算法是为解决一个问题而采取的方法和步骤,是程序的灵魂
程序 = 数据结构 + 算法 ➢ 算法:对数据处理的描述,算法是为解决一个问题而采 取的方法和步骤,是程序的灵魂。 ➢ 数据结构:是对数据的描述。 ➢ 在C语言中,数据结构是以数据类型的形式出现的

本章知识点2.1什么是算法2.2算法的特征(重点)2.3算法的表示方法2.4程序设计中常用算法简介一了解
本章知识点 2.1 什么是算法 2.2 算法的特征 2.3 算法的表示方法(重点) 2.4 程序设计中常用算法简介—了解

2.1什么是算法算法:解决问题的方法与步骤。是问题求解过程中的精确描述,一个算法由有限条可以完全机械地执行的、有确定结果的指令组成。程序:算法的具体实现程序设计语言:是程序开发工具,即是将算法转化为程序的开发工具。学习程序设计,不仅要熟练掌握程序设计语言本身的特点、语法规则等。更重要的是掌握分析问题、解决问题的方法一一一缴炼分析、分解,最终归纳整理出算法的能力
算法:解决问题的方法与步骤。是问题求解过程中的精 确描述,一个算法由有限条可以完全机械地执行的、有确 定结果的指令组成。 程序:算法的具体实现。 程序设计语言:是程序开发工具,即是将算法转化为程 序的开发工具。 学习程序设计,不仅要熟练掌握程序设计语言本身 的特点、语法规则等,更重要的是掌握分析问题、解决 问题的方法-锻炼分析、分解,最终归纳整理出算法 的能力。 2. 1 什么是算法

2.1.1日常生活中的算法>对同一个问题可以有不同的解题方法和步骤一算法例如,求1+2+3+......+50方法1:1+2+3+......+50=50+(1+49)+(2+48)+(3+47)+......+(24+26)+25=50×25+25=1275方法2:1+2+3+......+50=(1+50)+(2+49)+(3+48)+......+(25+26)=51X25=1275结论:算法有优劣之分
2.1.1 日常生活中的算法 ➢ 对同一个问题可以有不同的解题方法和步骤—算法 例如,求1+2+3+.+50 方法1: 1+2+3+.+50 = 50+(1+49)+(2+48)+(3+47) +.+(24+26)+25 = 50×25 + 25 = 1275 方法2:1+2+3+.+50 =(1+50)+(2+49)+(3+48) +.+(25+26)= 51×25 = 1275 结论:算法有优劣之分

2.1.2计算机算法的分类>计算机算法可分为两大类别1)数值运算算法2)非数值运算算法>数值运算的目的是求数值解例如:求方程的根。>非数值运算包括的面十分广泛,最常见的是用于事务管理领域例如:图书检索、学籍管理
2.1.2 计算机算法的分类 ➢ 计算机算法可分为两大类别: 1)数值运算算法 2)非数值运算算法 ➢ 数值运算的目的是求数值解 例如:求方程的根。 ➢ 非数值运算包括的面十分广泛,最常见的是用 于事务管理领域。 例如:图书检索、学籍管理

2.1.3简单的算法举例例2.1求1×2×3×4×5、原始方法:太繁琐>步骤1:求1*2,得到结果2。>步骤2:将步骤1得到的2再乘以3,得到结果6。>步骤3:将6再乘以4,得24。>步骤4:将24再乘以5,得120120最后的结果。求1X2×3X×4×5 X6×.....×100?
2.1.3 简单的算法举例 • 原始方法: ➢步骤1:求1*2,得到结果2。 ➢步骤2:将步骤1得到的2再乘以3,得到结果6。 ➢步骤3:将6再乘以4,得24。 ➢步骤4:将24再乘以5,得120。 120-最后的结果。 例2.1 求1×2×3×4×5 太繁琐 求1×2×3×4×5 ×6×. ×100?

例2.1求1×2×3×4×5新算法:5改为10,怎么做?设变量p为被乘数,变量i为乘数初值p=1,i=1令p与i相乘,乘积仍放在变量p中,即:p*i→p3使i的值加1,即+1=i循环5如果i不大于5,返回重新执行3否则,结束!1×2×3×4×5的值最后得到p的值就是
新算法: ① 设变量p为被乘数,变量i为乘数 ② 初值 p=1,i=1 ③ 令 p 与 i 相乘,乘积仍放在变量 p 中,即:p*ip ④ 使 i 的值加1,即 i+1 i ⑤ 如果 i 不大于 5,返回重新执行 ③; 否则,结束! 最后得到 p 的值就是 1×2×3×4×5 的值 5改为10,怎么做? 例2.1 求1×2×3×4×5 循环

例2.1的扩展:求1×3×5X7×9新算法:循环设变量p为被乘数,变量i为乘数初值 p=1,i=12.令 p与i相乘,乘积仍放在变量p中,即:p*i=→p3使i的值加2,即i+2=i5如果i不大于9,返回重新执行(3)否则,结束!1×3×5×7×9的值最后得到p的值就是
新算法: ① 设变量p为被乘数,变量i为乘数 ② 初值 p=1,i=1 ③ 令 p 与 i 相乘,乘积仍放在变量 p 中,即:p*ip ④ 使 i 的值加2,即 i+2 i ⑤ 如果 i 不大于 9,返回重新执行 ③; 否则,结束! 最后得到 p 的值就是 1×3×5×7×9 的值 例2.1的扩展: 求1×3×5×7×9 循环