内容正文:
算法
1
01 算法的概念
广义算法:解决问题或完成任务的一系列步骤。
计算机领域的算法:用计算机解决问题的步骤,是为了解决问题而让计算机有序执行的、无歧义的、有限步骤的集合。
2
01 算法的概念
计算机程序设计:用计算机理解的语言描述算法并将其输入到计算机中。
3
02 算法的五大特征
算法的五大特征
有穷性:一个算法的执行步骤是有限的,即它是能终止的
可行性:算法中的每个步骤都是可以实施的,而且能在有限的时间内完成
确定性:算法中每个步骤的执行描述必须是明确的
0个或多个输入:初始数据可以从外界输入,也可以包含于算法之中
1个或多个输出:算法的目的是用来解决问题,因此必须包含至少一个输出
问题与讨论
在求一元二次方程实数根的算法中,当方程不存在实数根,也要求输出“方程无实数根”。这一要求主要体现了算法特征中的( )
② 不能用算法描述“输出所有完全平方数”,是因为该任务不符合算法中的( )
1个或多个输出
有穷性
03 算法的要素(了解)
算法的要素
数据:明确初始数据、运算时产生的中间数据及以及代表问题解决的结果数据
运算:数据进行运算时,必须明确每一步的运算是什么、对哪些数据进行运算等
控制转移:在算法执行过程中,有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作
03 算法的描述
算法描述方式 概念 特点 表现形式
自然语言 用日常中交流的语言来描述算法 通俗易懂,但书写较麻烦、对复杂的问题难以表达准确、容易出现歧义 (1)输入变量flag的值
(2)若flag值为1,则设置指示灯为绿色,输出“空车位”,否则,设置指示灯为红色,输出“非空车位”
流程图 用规定的图形符号来描述算法 形象直观,容易理解,但分支增多时会出现流程线相互交叉,从而影响算法的理解
03-1 流程图
01 顺序结构
定义:各个步骤按照先后顺序依次执行的结构。
特点:每个步骤按照算法中出现的顺序依次执行;每个步骤一定会被执行依次,而且只执行一次。
结构:
9
01 顺序结构
网上购票的算法
10
02 分支结构
定义:先进行条件判断,再根据判断结果分别执行不同处理的控制结构。
特点:首先进行条件判断,根据条件是否满足与否来决定执行哪个分支;在一个分支结构中,必定有一个分支被执行,其他分支则被忽略。
结构:
单分支
双分支
多分支
11
02 分支结构
判断方程是否有实数根
任何一个算法都离不开的基本结构是顺序结构。
12
02 分支结构
13
03 循环结构
定义:某些步骤需要重复执行的控制结构。
特点:在给定条件成立时 反复执行某程序段,直到条件不成立为止。
结构:
14
03 循环结构
死循环:是指程序的控制流程一直在重复运行某一段代码,无法结束的情形。
15
思考与练习
用画流程图的方法比较a,b两个数的大小,并输出大的数
C
思考与练习
练一练
C
练一练
D
D
练一练
C
练一练
D
03 算法的描述
算法描述
方式 概念 特点 表现形式
伪代码 用一种比较直观简洁的、符号接近计算机程序代码的方式描述算法
紧凑简练,便于进一步转化为相应的计算机程序,但不易排错
计算机程序设计语言 简称为编程语言,是一组用来定义计算机程序的语法规则, 可用来向计算机发出指令 计算机可识别
05 拓展视频
《体验算法的多样性》
解决一个问题的算法往往具有多样性,即可用多种不同的算法来解决同一个问题。
Multimedia Cloud Transcode (cloud.baidu.com)
$$