C+算法的概念课件
第二章 算法2.1 算法的概念l算法:为解决一个问题的方法的精确描述;4Nikiklaus Wirth:数据结构+算法=程序;第二章 算法程序设计的步骤如下:程序设计的步骤如下:程序设计的步骤如下:程序设计的步骤如下:1)分析问题,写出逻辑结构2)根据逻辑结构写出存储结构3)在存储结构的基础上写出算法4)在算法的基础上写出程序5)写出程序后上机调试。6)调试正确后整理文档。4S1:i=1,令max等于第一个数;4S2:i=i+1;4S3:将max与第 i 个数进行比较,若前者小于后者,将修正max为第 i 个数;否则进行S4;4S4:判断 i 是否大于等于10,若否转S2,否则转S5;4S5:结束例2 从10个数中挑出最大数,并将之置入max。例1:设有两个杯子A和B,分别盛放酒和醋,要求将它们互换。4S1:C A S2:A B S3:B C2.2 简单算法举例例3:求n!4S1:s 1,t 1;4S2:s s*t;4S3:t t+1;4S4:若 t 小于等于n,则返S2,否则结束输出s。例4:求100以内的所有素数。4S1:将2到100的自然数放入a2至a100中;4S2:找一个最小的数 newp,newp的初始值为2;4S3:删去所有newp的倍数;4S4:重复S2、S3,直至newp100/2;4S5:输出剩余的数,结束。特征:特征:(1)有穷性;(2)确定性;(3)有零个或多个输入;(4)有一个或多个输出;(5)有效性;2.3 算法的特征和要求要求:要求:(1)正确性;(2)可读性;(3)适应性;(4)时间少,空间小;(5)用户的友好性;2.4 怎样表示一个算法l1、用自然语言表示算法通俗易懂,但易出现“歧义性”。l2、用流程图表示算法直观形象,易于理解。开始1 p2 ip*i pi+1 ii 5?输出pNYlBobm和Jacopini提出:程序只有三种基本结构顺序结构顺序结构选择结构选择结构循环结构循环结构ABpABYNpAYNpAYNpAYNl3、用N-S流程图表示算法用N-S图表示程序的三种基本元素框如下:顺序AB当型循环当P1 A直到型循环直到P1分支P T FA B输入b,max=bn=0 输入b maxb?T F max=b n=n+1 当n小于等于9输出max例如:从十个数中挑出最大数的N-S结构图如下:l例:求5!的N-S图如下:1 p2 i p*i p i+1 i 当 i=5打印pl4、用伪代码表示算法l5、用计算机语言表示算法l(由粗到细,逐步细化,采用模块化的思想)