计算机算法:算法与算法分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例1】 求3个数中值最大的一个。 【解】算法用自然语言描述如下:
第一步:输入3个数a、b、c; 第二步:如果a b,则将a放到max中,否则将b放到max中; 第三步:如果c max,则将c放到max中; 第四步:输出max,即为三个数中最大的一个。
华南师范大学 教师发展中心
3、算法的表示(描述)
【解1】 算法描述如下: 第一步:将红墨水倒入空瓶子中; 第二步:将蓝墨水倒入原来装红墨水的瓶子中; 第三步:将已倒入空瓶子中的红墨水倒入原来装蓝墨水的瓶子中; 第四步:结束。
华南师范大学 教师发展中心
1、算法的概念
【例】 交换两瓶墨水。有一瓶红墨水、一瓶蓝墨水,现要求把原来装
红墨水的瓶子改装蓝墨水,把原来装蓝墨水的瓶子改装红墨水。
s=5
s←s+t
s=5+55
i=2
i←i+1
i=3
输出s 结束 华南师范大学 教师发展中心
1、算法的概念
算法
操作
逻辑运算:与、或、非 算术运算:加、减、乘、除 数据比较:大于、小于、等
于、不等于 数据传送:输入、输出、赋值
控制结构 (各操作之间的执行次序)
顺序结构 选择结构 循环结构
华南师范大学 教师发展中心
华南师范大学 教师发展中心
3、算法的表示(描述)
(1)自然语言 自然语言描述算法的缺点: ❏易产生歧义,往往要根据上下文才能判别其含义,书写没有
严格的标准。 ❏ 语句比较繁琐冗长,并且很难清楚地表达算法的逻辑流程。 ❏ 自然语言表示的算法不便翻译成计算机程序设计语言。
华南师范大学 教师发展中心
3、算法的表示(描述)
max=x; else
max=y; if(z>max)
max=z; printf(“最大值为:%d\n”,max); }
华南师范大学 教师发展中心
3、算法的表示(描述)
(3)图形化工具 流程图是使用最早的算法和程序描述工具,符号简单,表现直
观、灵活,不依赖于任何具体的计算机和计算机程序设计语言。 由于流程线可以比较随意地跳转,很容易出现不符合结构化设
(1)自然语言 【例2】 输入一个大于1的正整数,求出该数的所有因数并输出。 【解】算法用自然语言描述如下:
第一步:输入一个大于1的正整数n; 第二步:依次以1、2、3、4…n-1、n为除数去除n; 第三步:依次检查余数是否为0,若为0,则是n的因数;若 不为0,则不是n的因数; 第四步:输出n的所有因数。
PPT模板下载:www.1ppt.com/moban/ 节日PPT模板:www.1ppt.com/jieri/ PPT背景图片:www.1ppt.com/beijing/ 优秀PPT下载:www.1ppt.com/xiazai/ Word教程: www.1ppt.com/word/ 资料下载:www.1ppt.com/ziliao/ 范文下载:www.1ppt.com/fanwen/ 教案下载:www.1ppt.com/jiaoan/
开始
n←1
i←2
n=1☓2 n=1☓2 ☓3
i=3 i=4
n←n * i i←i+1
N
i >10
Y
输出n
结束
n←1 i←2
i≤10 n←n * i i←i+1 输出n
华南师范大学 教师发展中心
3、算法的表示(描述)
(4)伪代码 伪代码是一种介于自然语言和程序设计语言之间的类计算机语言。
【例1】 输入一个年份,判断是否为闰年,并输出结果。 【解】算法主体用伪代码描述如下:
scanf ( y ); if (((y mod 4=0) and (y mod 100≠0)) or (y mod 400=0))
printf (y”是闰年”); else
printf (y”不是闰年”);
华南师范大学 教师发展中心
3、算法的表示(描述)
(4)伪代码
【例2】输入3个数,判断能否构成三角形。 【解】算法主体用伪代码描述如下:
计原则的现象;对于功能较复杂的算法,绘制流程图的规模会过于 庞大,绘制过程也会过于繁杂,影响对算法的阅读理解。
N-S图是完全去掉流程线,全部算法写在一个矩形框内,在框 内还可以包含其他框的流程图形式。
华南师范大学 教师发展中心
3、算法的表示(描述)
(3)图形化工具 【例】计算10! 【解】 10!=1☓2☓3☓...☓10 算法用流程图和N-S图 描述如右:
2、算法的基本特性
▪ 有穷性:一个算法必须在执行有穷步之后结束。 ▪ 确定性:组成算法的每个步骤都是确定的、明确无误的。 ▪ 可行性:算法中的每一步操作都应是可以执行的。 ▪ 输入:算法开始前,允许有若干个输入量,也可以没有输入量。 ▪ 输出:每种算法必须有确定的结果,产生一个或多个输出。
华南师范大学 教师发展中心
(2)计算机语言 计算机语言是一种人工语言,
即人为设计的语言,如Pascal、 VB、C、C++等。 【例】 求三个数中最大的数。 【解】 用C语言描述算法如右:
#include <stdio.h> main() {
int x,y,z,max; scanf(“%d,%d,%d”,&x,&y,&z); if(x>y)
行业PPT模板:www.1ppt.com/hangye/ PPT素材下载:www.1ppt.com/sucai/ PPT图表下载:www.1ppt.com/tubiao/ PPT教程: www.1ppt.com/powerpoint/ Excel教程:www.1ppt.com/excel/ PPT课件下载:www.1ppt.com/kejian/ 试卷下载:www.1ppt.com/shiti/
华南师范大学 教师发展中心
谢 谢!
华南师范大学 教师发展中心
【解2】两个变量交换的算法: 变量a:装有红墨水的瓶子
t←a来自百度文库
变量b:装有蓝墨水的瓶子
a←b
变量t:空瓶子 符号“←”:把一个变量的值放入另一个变量中
b←t
华南师范大学 教师发展中心
1、算法的概念
【例】求s = a + aa + aaa + aaaa + ...... 的值。 其中,a是一个数字(0≤a≤9),n是最后一项 中a的个数(n 1),a和n的值从键盘输入。 例如,若a = 5,n = 4,则s = 5+55+555+5555。
3、算法的表示(描述)
▪ 算法表示(描述)是把大脑中求解问题的方法和思路用一种规 范的、可读性强的、容易转换成程序的形式(语言)描述出来。
✓ 自然语言 ✓ 计算机语言 ✓ 图形化工具 ✓ 伪代码
华南师范大学 教师发展中心
3、算法的表示(描述)
(1)自然语言 自然语言就是我们生活中所使用的语言,如汉语、英语等。
算法与算法分析
课程内容
1
算法的概念
2
算法的基本特性
3
算法的表示(描述)
华南师范大学 教师发展中心
1、算法的概念
▪ 算法:解决问题的方法和步骤。 ▪ 问题的算法:解题过程准确而完整的描述。 ▪ 程序=算法+数据结构
华南师范大学 教师发展中心
1、算法的概念
【例】 交换两瓶墨水。有一瓶红墨水、一瓶蓝墨水,现要求把原来装 红墨水的瓶子改装蓝墨水,把原来装蓝墨水的瓶子改装红墨水。
【解】这是一个求n个数据项累加的问题。 设置一个存储累加和的变量s,其初值为0; 设置循环控制变量i表示求和的项数(i≤n); 设置数据项为t,其初值为0,在重复执行的循环
体中逐次将t * 10 + a 的值累加到变量s中。
开始
a=5
n=4
输入a,n
t←0, s←0
i←1
i=1
i≤n
N
i=2
Y
t=5 t←t*10 + a t=55
scanf ( a,b,c); if (a≤0 or b≤0 or c≤0)
printf (”输入不合法,无法构成三角形!”); else
if ((a+b>c) and (a+c>b) and (b+c>a)) printf (”可以构成三角形”);
else printf (”无法构成三角形!”);
第一步:输入3个数a、b、c; 第二步:如果a b,则将a放到max中,否则将b放到max中; 第三步:如果c max,则将c放到max中; 第四步:输出max,即为三个数中最大的一个。
华南师范大学 教师发展中心
3、算法的表示(描述)
【解1】 算法描述如下: 第一步:将红墨水倒入空瓶子中; 第二步:将蓝墨水倒入原来装红墨水的瓶子中; 第三步:将已倒入空瓶子中的红墨水倒入原来装蓝墨水的瓶子中; 第四步:结束。
华南师范大学 教师发展中心
1、算法的概念
【例】 交换两瓶墨水。有一瓶红墨水、一瓶蓝墨水,现要求把原来装
红墨水的瓶子改装蓝墨水,把原来装蓝墨水的瓶子改装红墨水。
s=5
s←s+t
s=5+55
i=2
i←i+1
i=3
输出s 结束 华南师范大学 教师发展中心
1、算法的概念
算法
操作
逻辑运算:与、或、非 算术运算:加、减、乘、除 数据比较:大于、小于、等
于、不等于 数据传送:输入、输出、赋值
控制结构 (各操作之间的执行次序)
顺序结构 选择结构 循环结构
华南师范大学 教师发展中心
华南师范大学 教师发展中心
3、算法的表示(描述)
(1)自然语言 自然语言描述算法的缺点: ❏易产生歧义,往往要根据上下文才能判别其含义,书写没有
严格的标准。 ❏ 语句比较繁琐冗长,并且很难清楚地表达算法的逻辑流程。 ❏ 自然语言表示的算法不便翻译成计算机程序设计语言。
华南师范大学 教师发展中心
3、算法的表示(描述)
max=x; else
max=y; if(z>max)
max=z; printf(“最大值为:%d\n”,max); }
华南师范大学 教师发展中心
3、算法的表示(描述)
(3)图形化工具 流程图是使用最早的算法和程序描述工具,符号简单,表现直
观、灵活,不依赖于任何具体的计算机和计算机程序设计语言。 由于流程线可以比较随意地跳转,很容易出现不符合结构化设
(1)自然语言 【例2】 输入一个大于1的正整数,求出该数的所有因数并输出。 【解】算法用自然语言描述如下:
第一步:输入一个大于1的正整数n; 第二步:依次以1、2、3、4…n-1、n为除数去除n; 第三步:依次检查余数是否为0,若为0,则是n的因数;若 不为0,则不是n的因数; 第四步:输出n的所有因数。
PPT模板下载:www.1ppt.com/moban/ 节日PPT模板:www.1ppt.com/jieri/ PPT背景图片:www.1ppt.com/beijing/ 优秀PPT下载:www.1ppt.com/xiazai/ Word教程: www.1ppt.com/word/ 资料下载:www.1ppt.com/ziliao/ 范文下载:www.1ppt.com/fanwen/ 教案下载:www.1ppt.com/jiaoan/
开始
n←1
i←2
n=1☓2 n=1☓2 ☓3
i=3 i=4
n←n * i i←i+1
N
i >10
Y
输出n
结束
n←1 i←2
i≤10 n←n * i i←i+1 输出n
华南师范大学 教师发展中心
3、算法的表示(描述)
(4)伪代码 伪代码是一种介于自然语言和程序设计语言之间的类计算机语言。
【例1】 输入一个年份,判断是否为闰年,并输出结果。 【解】算法主体用伪代码描述如下:
scanf ( y ); if (((y mod 4=0) and (y mod 100≠0)) or (y mod 400=0))
printf (y”是闰年”); else
printf (y”不是闰年”);
华南师范大学 教师发展中心
3、算法的表示(描述)
(4)伪代码
【例2】输入3个数,判断能否构成三角形。 【解】算法主体用伪代码描述如下:
计原则的现象;对于功能较复杂的算法,绘制流程图的规模会过于 庞大,绘制过程也会过于繁杂,影响对算法的阅读理解。
N-S图是完全去掉流程线,全部算法写在一个矩形框内,在框 内还可以包含其他框的流程图形式。
华南师范大学 教师发展中心
3、算法的表示(描述)
(3)图形化工具 【例】计算10! 【解】 10!=1☓2☓3☓...☓10 算法用流程图和N-S图 描述如右:
2、算法的基本特性
▪ 有穷性:一个算法必须在执行有穷步之后结束。 ▪ 确定性:组成算法的每个步骤都是确定的、明确无误的。 ▪ 可行性:算法中的每一步操作都应是可以执行的。 ▪ 输入:算法开始前,允许有若干个输入量,也可以没有输入量。 ▪ 输出:每种算法必须有确定的结果,产生一个或多个输出。
华南师范大学 教师发展中心
(2)计算机语言 计算机语言是一种人工语言,
即人为设计的语言,如Pascal、 VB、C、C++等。 【例】 求三个数中最大的数。 【解】 用C语言描述算法如右:
#include <stdio.h> main() {
int x,y,z,max; scanf(“%d,%d,%d”,&x,&y,&z); if(x>y)
行业PPT模板:www.1ppt.com/hangye/ PPT素材下载:www.1ppt.com/sucai/ PPT图表下载:www.1ppt.com/tubiao/ PPT教程: www.1ppt.com/powerpoint/ Excel教程:www.1ppt.com/excel/ PPT课件下载:www.1ppt.com/kejian/ 试卷下载:www.1ppt.com/shiti/
华南师范大学 教师发展中心
谢 谢!
华南师范大学 教师发展中心
【解2】两个变量交换的算法: 变量a:装有红墨水的瓶子
t←a来自百度文库
变量b:装有蓝墨水的瓶子
a←b
变量t:空瓶子 符号“←”:把一个变量的值放入另一个变量中
b←t
华南师范大学 教师发展中心
1、算法的概念
【例】求s = a + aa + aaa + aaaa + ...... 的值。 其中,a是一个数字(0≤a≤9),n是最后一项 中a的个数(n 1),a和n的值从键盘输入。 例如,若a = 5,n = 4,则s = 5+55+555+5555。
3、算法的表示(描述)
▪ 算法表示(描述)是把大脑中求解问题的方法和思路用一种规 范的、可读性强的、容易转换成程序的形式(语言)描述出来。
✓ 自然语言 ✓ 计算机语言 ✓ 图形化工具 ✓ 伪代码
华南师范大学 教师发展中心
3、算法的表示(描述)
(1)自然语言 自然语言就是我们生活中所使用的语言,如汉语、英语等。
算法与算法分析
课程内容
1
算法的概念
2
算法的基本特性
3
算法的表示(描述)
华南师范大学 教师发展中心
1、算法的概念
▪ 算法:解决问题的方法和步骤。 ▪ 问题的算法:解题过程准确而完整的描述。 ▪ 程序=算法+数据结构
华南师范大学 教师发展中心
1、算法的概念
【例】 交换两瓶墨水。有一瓶红墨水、一瓶蓝墨水,现要求把原来装 红墨水的瓶子改装蓝墨水,把原来装蓝墨水的瓶子改装红墨水。
【解】这是一个求n个数据项累加的问题。 设置一个存储累加和的变量s,其初值为0; 设置循环控制变量i表示求和的项数(i≤n); 设置数据项为t,其初值为0,在重复执行的循环
体中逐次将t * 10 + a 的值累加到变量s中。
开始
a=5
n=4
输入a,n
t←0, s←0
i←1
i=1
i≤n
N
i=2
Y
t=5 t←t*10 + a t=55
scanf ( a,b,c); if (a≤0 or b≤0 or c≤0)
printf (”输入不合法,无法构成三角形!”); else
if ((a+b>c) and (a+c>b) and (b+c>a)) printf (”可以构成三角形”);
else printf (”无法构成三角形!”);