大学计算机基础第10章 程序设计基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接着进行第二趟排序, 方法同前,只是这次最 后一个元素不再参与比 较,比较次数为n-2次, 依次类推。
15/35
18 20 15 32 4 25 18 20 15 32 4 25 18 15 20 32 4 25 18 15 20 32 4 25 18 15 20 4 32 25 18 15 20 4 25 32
算法
传统的流程图法
用一些图框、线条以及文字说明来形象地、直观地描述算法。
A
条件
Y
N
wk.baidu.com
B
A
B
顺序结构
选择结构
条件
Y
N
A
A N 条件
Y
循环结构
9/35
例:求1+2+……+10=?
开始
i=1,s=0 N
i<=10? Y
s←s+i i ←i+1
结束
10/35
算法
N-S流程图法(也叫做盒图)
去掉传统流程图中带箭头的流向线,全部算法以一个大的矩形 框表示,框内还可以包含一些从属于它的小矩形框,适于结构 化程序设计。
第10章 程序设计基础
1
第10章 程序设计基础
程序设计的概念 算法 程序设计语言 程序设计方法
2/35
程序设计的概念
程序
解题方法、步骤的描述;指令序列。
程序的核心
存储、组织 数据的方式
经典公式: 程序=数据结构+算法
程序设计(Programming)
分析问题,确定数学模型或方法。 设计算法,画出流程图。 选择编程工具,按算法编写程序。 调试程序,分析输出结果。
If i/2的余数为0 THEN sum+i→sum i+1→i Loop Print sum
12/35
算法
算法示例
迭代算法 迭代是一种建立在循环基础上的算法。在数学中,迭代经常被用 来进行数值计算。 例如求方程的解,不断用变量原来的值递推求新的值的过程。
讨论求若干个数之和或乘积的问题。 穷举算法(枚举法)
二个元素进行交换。
2 第6趟 7和1交换,结果为:[1,2,3,5,6,7],8,9
依次类推,直到将表中所 有关键字按由小到大的顺
1
第7趟 8不动,最终结果为:[1,2,3,5,6,7,8,9]
序排列好为止。
选择排序举例
共28次
14/35
算法
冒泡排序(Bubble Sort) 是每趟将相邻的两个数 两两进行比较,若满足 升序次序,则进行下一 次比较,若不满足升序 次序,则交换这两个数, 直到最后。 总的比较次数为n-1次, 此时最后的元素为最大 数,此为一趟排序。
3/35
算法
? 什么是算法
算法的概念
计算机解决问题的方法和步骤,就是计算机解题的算法。
通俗地讲,程序就是用计算机语言表述的算法;流程图就是图形化的 算法。
n
例求
sum i
算法如下:
i 1
(1) 输入:输入待求和数的个数n;
(2) 置初态:累加器sum为0,要进行累加的数i为1;
(3) 重复执行下面的语句,直到i﹥n; 求累加和:sum+i→sum; 获得 下一个累加数:i+1→i;
冒泡排序一趟比较后的结果
算法
查找算法
查找是根据给定的某个值,在查找表中确定一个其关键字等于给定值 的数据元素,若表中存在这样的数据元素,称此查找是成功的。若表 中不存在关键字等于给定值的数据元素,称此查找是不成功的。
11/35
算法
用伪代码描述算法
伪代码是一种算法描述语言。
即让人便于理解的代码。不依赖于语言的,用来表示程序 执行过程,而不一定能编译运行的代码。
例如:
• 计算2+4+… +100 • 并输出 • 设计算法 • 并用Visual Basic 伪代码描述如下:
0→sum 1→i Do While i≤100
先找出表中关键字最小的 5 第3趟 5和3交换,结果为:[1,2,3],7,9,6,8,5
元素,将其与第一个元素
进行交换
4 第4趟 7和5交换,结果为:[1,2,3,5],9,6,8,7
再在其余元素中找出关键 字最小的元素,将其与第
3
第5趟 9和6交换,结果为:[1,2,3,5,6],9,8,7
5/35
算法
算法的特性
有穷性 算法中执行的步骤总是有限次数的,不能无止境地执行下去。
确定性 算法中的每一步操作必须具有确切的含义,不能有二义性。
有效性 算法中的每一步操作必须是可执行的。
有数据输入 算法中操作的对象是数据,因此应提供有关数据。
有结果输出。
6/35
算法
算法评价标准
正确性 可读性
时间复杂度实际上就是基本操作语句 的频度。n为问题的规模
通用性 高效率 算法效率的度量 时间度量
f(n):基本操作重 复执行的次数
T(n) O( f (n))
空间度量 S(n) O( f (n))
• • •
运输存 行入储 过输算 程出法 中数所 临据占 时所空 空占间 间空
它的基本思路是对众多可能解,按某种顺序进行逐一枚举和检验, 并从中找出那些符合要求的可能解,作为问题的解。
穷举的计算量是相当大的,但对于计算机来说,做起来很容易。 穷举算法是一种重要的算法设计策略,可以说是计算机解题的一
大特点。 求方程x+2y+5z=100的整数解。
13/35
算法
排序算法
比较
排序就是将一组数据元素
按照某个关键字递增或递 次数 待排序数为: 7,2,5,1,9,6,8,3
减的次序排列起来。
选择排序(Selection Sort), 7
第1趟 7和1交换,结果为:[1],2,5,7,9,6,8,3
实现过程是:
6 第2趟 2不动 ,结果为:[1,2],5,7,9,6,8,3

7/35
算法
算法的描述(3种方法)
程序的3种基本结构 顺序结构、选择结构和循环结构。
用传统的流程图描述算法 以特定的图形符号加上说明,表示算法的图。
用N-S图描述算法 N-S图是一种取代传统流程图的描述方式。
用伪代码描述算法(自学完成) 是一组日常语文及电脑指令的结合。
8/35
(4) 输出:显示结果sum;
(5) 结束。
4/35
算法
算法的分类 数值计算算法
求数值解,其特点是少量的输入、输出,复杂的运算,如 求高次方程的根、求函数的定积分等。
非数值计算算法
对数据的处理,其特点是大量的输入、输出,简单的运算, 例如,对数据的排序、查找等算法。
算法举例:
例1: 一个选择结构 。 例2: 输入10个数,要求找出其中最大的数。
相关文档
最新文档