- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]3程序工作方式解析
大学计算机基础 第三讲 3.1 程序的工作方式解析 【例3-5】线性数据组织,选择排序(由小到大:升序)。 基本思想及排序过程:首先确定当前需要选择第几个数据,然后从未排序的数据集中选择一个当前最小的数据,并将其按线性序列排在已排序数据的后面。对于n个数据,一共需要选择n-1个数据。 (b) 选择排序算法思想的可视表示 图3.21 选择排序算法 (2)查找 查找又称为检索,是从一组给定的数据中找出所需的数据的过程。查找的方法也有多种,每种方法的查找时间性能也是不一样的。每种查找方法都与一种数据组织方式相关,也可以在已经排过序的一组数据中查找。 【例3-6】 线性数据组织,简单直接查找。 基本思想及查找过程:从第1个数开始,一个一个地与需要查找的数比较,直到查完所有的数。可能查到,也可能查不到。 (a)直接查找算法的N-S图 (b) 直接查找算法思想的可视表示 图3.22 直接查找算法可视化表示 【例3-7】 树型数据组织,二叉树查找。 基本思想及查找过程:从树根开始与需要查找的数比较,如果当前的数比需要查找的数小,则向左边继续进行查找;如果当前的数比需要查找的数大,则向右边继续进行查找。直到查到树叶。可能查到,也可能查不到。如果要求查不到时将需要查找的数据插入,则这种查找会不断扩展原始数据集,因此,称这种查找为动态查找。否则,称为静态查找。 图3.23 二叉树查找算法可视化表示 (3)递归 递归算法是递归思想的直接应用,递归的基本思想是,针对某个概念,通过概念本身定义这个概念。也就是用自己说明自己。 比如,下列关于阶乘的定义: ① N!= 1 当N=0或N=1时; ② N!= N*(N-1)! 当N1时。 其中,②中用(N-1)!定义N!。也就是说,为了说明N!的阶乘,使用了(N-1)!,而(N-1)!仍然没有给出明确定义。 递归也是一种循环,与普通循环结构不同的是,递归不是在循环体完成后重复循环体,而是在循环体内重复循环体。普通循环可以理解成循环体的串型执行,而递归则是循环体的嵌套执行。 递归有两个显著的特征,即递归终止条件和递归策略。比如,上面有关阶乘的例子中,①是递归终止条件;②是递归策略。递归策略往往是向递归终止条件靠拢。 单递归: 是指在递归策略中只存在一个递归; 多递归: 是指在递归策略中往往存在两个或两个以上的递归。比如斐波那契数列(Fibnacci)的数学定义就是多递归; N 当N=0或1时; Fib(N)= Fib(N-1)+Fib(N-2) 当N1时。 嵌套递归: 是指在递归策略中,某个递归的数据部分还包含一个递归,比如,Ackerman函数的定义,就是嵌套递归。 N+1 当M=0时; Akm(M,N)= Akm(M-1,1) 当M?0,N=0时; Akm(M-1,Akm(M,N-1)) 当M?0,N?0时。 递归算法的求解,实际上是一个分解和综合的过程,其中分解过程是向递归终止条件靠拢的过程,而综合过程则是从终止条件返回,并将每步的解进行综合,从而得到最终解。为了实现综合,必须将分解过程进行记录。因为分解过程与综合过程正好相反,因此通过堆栈可以记录分解过程。图3.24是5!的求解过程。 图3.24 5!的求解过程 (4)回溯 回溯法(backtracking)也称为试探法。这种方法是将问题的候选解按某种顺序逐一枚举和检验,当发现当前的候选解不可能是最终解时,就放弃它而选下一个候选解。如果当前的候选解除了不满足问题规模的要求外,其他所有要求都已经满足,则认为当前的候选解是合理的,可以进一步扩大当前候选解的规模继续试探。如果当前的候选解满足了包括问题规模在内的所有要求,则这个候选解就是问题的一个最终解。 在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。扩大当前候选解的规模并继续试探的过程称作向前试探。 * * 3.1 程序工作方式解析(与对话方式的区别和联系) 图3.1 交互式交流方式与程序式交流方式的基本工作过程 交互式交流方式: 人与计算机是联机工作的,因此,人的主动性比较高。面对遇到的问题,可以随机应变。 程序式交流方式: 构造程序时必须考虑许多问题,要考虑到各种各样可能出现的问题及其对策。 3.2 程序的本质 3.2.1 程序与程序设计 程序是指一组预定的工作指令流,可以直接通过计算机执行,使具体的现实世界中的客观问题得以在计算机世界中
文档评论(0)