内容正文:
2.2 算法的概念及其描述
- 2023年10月 -
1
学习目标
描述算法的特征,理解算法在问题解决过程中的作用。
选用恰当的描述方法和控制结构表示简单算法,增强用算法解决问题的意识。
情境描述
小明到北京旅游,他乘坐火车到达了北京站,然后准备乘坐地铁去天安门参观,地铁线路图如下图所示,你能帮小明规划好路线吗?是否只有一条路线?请大家思考这个问题。
体验探索
地铁1号线
寻找路线的方法,可以称之为算法。
解决同一个问题的算法可能有多种。
首先我们先来看一下这样一个案例
3
2.2.1认识算法
广义上讲,算法是解决一个特定问题而采取的确定的、有限的步骤。
在计算机领域,算法作为一个精心设计的运算序列,描述了计算机如何将输入转化为输出的过程。
4
2.2.1认识算法
如何帮助牧羊人成功渡河?
算法是解决一个特定问题而采取的确定的、有限的步骤。
在刚才我们解决这个问题的时候是分步骤,通过许多分析与思考得出的结果。这其实是算法的一个运用。
刚才我们将这个问题分解,采取明确而有步骤的方式来解决过河的难题。
5
2.2.1认识算法
算法一般具有如下特征:
有输入:一个算法一般要求有0个或多个输入。
有输出:一个算法可以有一个或多个输出。
有穷性:算法必须能在执行有限个步骤之后终止,也就是算法的步骤不能是无限的。
可行性:算法中的每一步的操作都是可以执行的,或者都可以分解成计算机可执行的基本操作。
确定性:算法的每个步骤都具有确定的含义,没有歧义。杜绝含糊不清、模棱两可、二义性描述。
6
2.2.1认识算法
练一练:
1. 下面关于算法的描述,正确的是( )
A. 算法就是解决问题的方法和步骤。
B. 算法可以被无限制的执行。
C. 算法描述了计算机如何将输入转化为输出的过程。
D. 算法可以有零个或多个输入,但只能有一个输出。
C
解析:
A:算法是解决一个特定问题而采取的确定的、有限的步骤。
B:有穷性:算法必须能在执行有限个步骤之后终止,也就是算法的步骤不能是无限的。
D: 算法一般要求有0个或多个输入,1或多个输出。
7
2.2.2 描述算法
小明在去往地铁站时,在路口遇到了一个红绿灯。小明发现该红绿灯上配有一个倒计时器,倒计时15秒之后红灯变成了绿灯,如何将“倒计时15秒”的算法描述出来?
描述“红灯变绿灯”问题的算法
描述算法是将解决问题的步骤用一种可理解的方式表示出来。
①自然语言
②流程图
③伪代码
上节课我们在解决红灯变绿灯问题的算法时,我们将该问题分解,用易于理解的方式表示出来。
接下来我们一起来看如何来描述算法
我们常见的方法有自然语言、流程图、伪代码等方式。我们先来看第一种方式“用自然语言描述算法”
8
2.2.2 描述算法
描述“红灯变绿灯”问题的算法
①自然语言
将计数器t(剩余秒数)设为15;
如果t大于等于1,执行步骤③,否则执行步骤⑤;
显示t,并保持显示1秒,然后清除显示;
将t的值减1,跳转至步骤②。
倒计时结束。
自然语言指人们日常所用的语言。
用自然语言描述算法就是用人们能够读懂的简短语言对算法的步骤进行描述。
易于理解,但有时容易产生二义性,干扰后续编程实现。
9
2.2.21 认识算法
当你想要从北京去上海迪士尼旅游,你会如何规划行程呢?
① 网上购买迪士尼门票;
② 根据日期,购买火车票或者飞机票;
③ 根据行程及日期安排,预订住宿酒店;
④ 带好各种票据,准备好行李,按时乘车;
⑤ 到达上海,乘坐出租车或公共交通车辆去往酒店入住,放行李;
⑥ 带好门票,按时到迪士尼游玩。
①自然语言
10
2.2.2 描述算法
②流程图
结束
t ← 15
t ≥ 1
输出t
t ← t-1
True
False
保持显示1秒
清除显示
开始
自然语言
流程图
在描述同一问题时,对比两种方法,你有什么发现呢?
11
2.2.2 描述算法
②流程图
流程图是用图形表示算法的一种常用工具。
用流程图描述的算法直观易读,问题解决的步骤清晰简洁,算法结构表达明确。
开始/结束框
输入/输出框
处理框
判断框
流程线
连接点
我们可以发现利用流程图来描述算法更加直观............我们一起来看看左边这些流程图的常见符号
开始-结束框
输入-输出框
12
2.2.2 描述算法
②流程图
流程图符号 名称 功能
开始/结束框 表示算法的开始或结束
输入/输出框 表示输入或输出数据
处理框 框中指出要处理的内容,此框有一个入口和一个出口
判断框 用于表示条件判断及产生分支的情况,判断框有四个顶点,通常上面的顶点表示入口
流程线 用于控制流程方向
连接点 用于连接因页面写不下而断开的流程线
13
2.2.2 描述算法
②流程图
流程图绘