内容正文:
算法的概念与特征
趣味游戏——《农夫过河》
分析问题:
农夫要将一匹狼、一只羊和一筐菜运到河对岸。他的船太小。一次只能带一样。当他不在时,狼要吃羊、羊会吃菜。怎样乘船才能安全地把这些东西运过河?
趣味游戏——《农夫过河》
第一步,把羊运到河对岸
第二步,把狼运到河对岸
第三步,把羊运回来
第四步,把菜运到河对岸
第五步,把羊运到河对岸
算法
方案一:
方案二:
第一步,把羊运到河对岸
第二步,把狼运到河对岸
第三步,把羊运回来
第四步,把菜运到河对岸
第五步,把羊运到河对岸
算法的概念
·古代 算法即“算术”
古时候,君子有六艺:“礼”、“乐”、“射”、“御”、“书”、“数”,其中 “数”指的就是术数,也就是算法。
礼
乐
射
御
书
数
算法的概念
·广义:“算法”指解决问题或完成任务的一些列步骤。
生活处处皆算法。
算法的概念
·计算机科学领域
算法指用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的,无歧义的、有限步骤的集合。
用计算机能理解的语言描述算法,并输入到计算机中,这个过程就是计算机程序设计。
思考
算法 = 程序?
程序=数据结构+算法
算法的概念
算法:就是通过明确的、可执行的操作步骤来描述问题的求解方案,且算法中的每一步都能被人或者及其装置执行。
问题
算法
解决
步骤
1
步骤
2
步骤
N
……
算法的特征
1
2
3
4
5
可行性
有穷性
确定性
0个或多个输入
1个或
多个输出
算法的特征
一个算法在执行有限步骤之后必须结束
有穷性
计算斐波那契数列的和
1,1,2,3,5,8,13,21,34,55……
数列从第3项开始,每一项等于前两项的和。
×
算法的特征
每个步骤都是能做到并在有限时间内完成
可行性
计算10除以0的结果
×
算法的特征
算法的每个步骤的执行描述必须是明确的
确定性(无二义性)
×
计算100÷整数的结果
算法的特征
初始数据可以从外界输入,也可以包含在算法之中
0个或多数输入
算法必须包含至少一个输出(没有输出的算法是没有意义的)
1个或多个输出
一家三口在户外野餐,只有一个烤肉架,正好能容纳两片烤肉,已知一片肉的两面需要20分钟,怎样才能在最短时间内烤完三片肉?
算法优化
一号
二号
三号
步骤:
①将(1)(2)号肉放入烤炉,烤制十分钟
②将(1)号肉翻面,将(2)号肉拿出烤炉,将(3)号肉放入烤炉,烤制10分钟
③将(1)号拿出烤炉,将(2)号烤炉拿出并翻面,烤制10分钟。
结果:总共用时30分钟
算法优化
假期里你想帮爸爸泡茶,但是没有开水,烧水壶、茶壶、茶杯也都还没洗,暂不考虑时间成本的前提下,你通常习惯怎么做?
请至少给出两种算法?
算法优化
洗开水壶
1分钟
洗茶壶
1分钟
烧开水
6分钟
洗茶杯
1分钟
泡茶
1分钟
取茶叶
1分钟
方案一:
算法优化
洗水壶
1分钟
洗茶壶
1分钟
烧开水
6分钟
洗茶杯
1分钟
泡茶
1分钟
取茶叶
1分钟
方案二:
洗水壶
1分钟
洗茶壶
1分钟
洗茶杯
1分钟
取茶叶
1分钟
烧开水
6分钟
泡茶
1分钟
算法优化
同一个问题,可以有不同的算法,选择优化的算法可以节约时间,提高效率。
“烤肉”问题
“泡茶”问题
小结
算法的概念
算法的特征
算法的优化
课堂练习
1、关于算法的特征,以下说法正确的是( )
A、算法的步骤可以永远执行
B、算法的每一个步骤都需要有明确的含义,不能有歧义出现
C、算法必须要有效数据的输入
D、算法可以没有数据的输出
2、下列有关算法的描述中,错误的是( )
A、算法是解决某一问题的方法和步骤
B、解决某一问题的算法是唯一的
C、自然语言或流程图均可以描述算法
D、算法必须保证执行计算的次数是有限的
B
B
课堂练习
3、下列算法违背了算法的哪个特征( )
a=3 b=0 输出a/b
A、有穷性 B、确定性 C、可行性 D、输入、输出性
4、判断下列算法违背了算法的哪个特征( )
①s=1
②将s的值增加1
③重复步骤②
A、有穷性 B、确定性 C、可行性 D、输入、输出性
C
A
谢谢观看
$$