(
课件网) 算法的概念及描述 问:把大象放进冰箱需要几步? 第一步 把冰箱门打开 第二步 把大象放进去 第三步 把冰箱门关上 汉诺塔游戏 编号从短到长分别为a b c d 第一步 把a移动到Y 第二步 把b移动到Z 第三步 把a移动到Z 第四步 把c移动到Y 第五步 把b移动到Y 第六步 把a移动到Y 第七步 把d移动到Z 第八步 把a移动到X 第九步 把b移动到Z 第十步 把a移动到Y 第十一步 把b移动到X 第十二步 把a移动到X 第十三步 把c移动到Z 第十四步 把a移动到Y 第十五步 把b移动到Z 第十六步 把a移动到Z 什么是算法? 算法的定义 广义:解决问题或完成任务的一系列步骤 不仅仅指计算任务(算术),也可以是社会生活中各种事务的处理。 计算机科学领域:用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。 为了让计算机理解算法中的步骤,用计算机能理解的语言来描述算法并将其输入到计算机中,这个过程就称为计算机程序设计 不仅包含了数值计算,还包含了非数值计算的数据处理 算法 通俗的讲,“算法”指的是解决问题或完成问题的一系列步骤。 算法应由有限个步骤组成; ① 有穷性 例如:X=-9, 求X的算术平方根? 不可行 ② 可行性 例如:X=10, 求X/自然数 的值? ③ 确定性 算法中已包含所需要的数据 ④ 0个或多个输入 任何算法都需要结果。 ⑤ 1个或多个输出 算法的五大特征 算法的要素:数据 运算 控制转移 求根公式求解一元二次方程的算法: (1)输入一般形式下的二次项系数a,一次项系数b,常数项c (2)计算判别式 的值 (3)若 ,则计算 ,输出字符串“方程有实数解”,并输出x的值;否则,输出字符串“方程无实数解” 要素 含义 数据 明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据 运算 明确每一步的运算是什么、对哪些数据进行运算等 控制转移 有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作 a,b,c, ,x 加减乘除,开根,平方 若......,则......; 否则........ =b2-4ac >=0 算法的描述 设计出解决问题的算法,也需要用能被算法执行者理解的形式加以呈现,才能被算法执行者(人,计算机)理解并执行。算法的这种呈现就称为算法的描述。 常见的算法描述方式有自然语言、流程图、伪代码、计算机程序设计语言等 自然语言是人们在日常生活中交流使用的语言,如汉语、英语、德语、日语等。 变量:数据可能会发生改变 约定俗成的规则———专业名词 输入,输出..... 常量:数据不会会发生改变 求根公式求解一元二次方程的算法: (1)输入一般形式下的二次项系数a,一次项系数b,常数项c (2)计算判别式 的值 (3)若 ,则计算X= ,输出字符串“方程有实数解”, 并输出x的值;否则,输出字符串“方程无实数解” =b2-4ac >=0 自然语言描述算法 自然语言是人们在日常生活中交流使用的语言,如汉语、英语、德语、日语等。用自然语言描述算法通俗易懂,且不需要进行专门的学习和训练。 阅读:停车场车位探测中的算法 自然语言描述如下: (1)输入变量flag的值。 (2)若flag的值为1, 则设置指示灯为绿色,输出“空车位”; 否则,设置指示灯为红色,输出“非空车位。 使用自然语言描述算法的优缺点 优点:容易理解 缺点:书写烦琐,不确定性,对复杂的问题难以表达准确,不能被计算机识别和执行。 流程图描述算法 流程图用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号,表示操作进行方向。 自然语言描述如下: (1)输入变量flag的值。 (2)若flag的值为1, 则设置指示灯为绿色,输出“空车位”;否则, 设置指示灯为红色,输出“非空车位 ... ...