- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常数阶 一般指顺序结构算法的时间复杂度 注意:不管顺序结构算法的语句有多长,我们都记作O(1) 对于分支结构而言,无论决策语句判断的结果是真,还是假,执行的次数都是恒定的,所以单纯的分支结构,其时间复杂度也是O(1) 例如,某些哈希查找过程是一个常数阶的运算 * 常数阶图示 * 线性阶 线性阶一般来自循环结构。要确定某个算法的阶次,常常需要确定某个特定语句或某个语句集运行的次数 例如,对于无序数列进行的关键字查找是一个线性阶的过程,时间复杂性与数列的长度成正比 * 线性阶图示 * 平方阶 通常来自循环嵌套,它的内循环在前面已经分析过,时间复杂度为O(n) 而对于外层的循环,不过是对内部的时间复杂度为O(n)的语句,再循环n次。所以这段代码的时间复杂度为O(n2) 如果外循环的循环次数改为了m,时间复杂度就变为O(m×n) * 平方阶图示 * 对数阶 对数阶的算法往往来自一些分治算法,例如,折半查找,每查一次,所求解的空间就会减少一半 而这些算法往往与有效地利用递归有关 * 对数阶图示 * 空间复杂性的大O阶 空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。 注意:该空间与输入数据的规模没有关系 有的算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变; 有的算法需要占用的临时工作单元数与解决问题的规模n有关,它随着n的增大而增大 * 空间复杂性的参考案例 一些排序方法,如快速排序的数据本身在原地不动(in-place),运行该算法要为递归程序执行过程所需堆栈提供辅助空间,所以是O (logn) 归并排序和基数排序需要建立新的数组来存放排序后的数据,所需辅助空间较多,为O(n) 在动态规划算法中,需要保存大量的算例结果,所以其空间复杂性O(n2) * 计算的可视化问题 如果按一般方法学习算法设计的历程,一般需要经历程序设计、数据结构、离散数学等课程的铺垫 引入可视化的程序设计环境,其目标则是通过缩短现实世界中的行为与程序设计之间的概念距离来减少学习上的认知负担 * 可视化计算 设计可视化(用连接基本图形符号来创建算法) 运行可视化(可以选择单步执行或以连续执行的模式、可以直观地显示当前执行符号(语句)所在的位置,以及所有变量的内容) 结果可视化(基于Ada Graph的简单图形库,所求解的问题的呈现和计算的结果,也是可以是可视化的) * 设计可视化 在编辑子程序调用语句时,RAPTOR会自动提示已经存在的子程序的名称 流程图是完全可视化的算法设计工具 * 运行可视化 在执行过程中,目前正在执行的符号语句显示为绿色 所有的变量的状态显示在屏幕左下角的窗口中 * 调试方法 在运行程序之前,用户可使用鼠标右键单击任何语句,调出菜单选择“Toggle Breakpoint”选项,设置程序运行的断点 可以按“F10”键,单步执行语句 * 结果可视化 通过主控制台(Master Console)输出文字性的计算结果和表达式运行计数值 * 结果可视化 一些计算问题和结果,如迷宫、棋盘甚至三维立体图形都可以通过图形界面输出 * RAPTOR与流程图规范 由于RAPTOR设计考虑了程序设计初学者的因素,一些特殊设计与传统的流程图有差异 所以: RAPTOR ≠ 流程图 * 认识RAPTOR ≠ 流程图 了解和认识正式的流程图规范,以便在书面应用中不至于出现与标准冲突的问题 了解RAPTOR的特殊性,以便借鉴来从其他文献的流程图算法,进行比对和移植 深入了解RAPTOR以后,可以方便的从其他高级语言编制的算法中,进行移植和使用可视化方法验证算法 * RAPTOR与流程图规范的差异 RAPTOR使用的流程图符号较规范中的少且有差异; * RAPTOR与流程图规范的差异 RAPTOR流程图中循环语句的决策出口两个方向(Yes/No)与规范和传统流程图相反 * RAPTOR设计者的思路 这是由于(要退出循环时)初学者更喜欢使用肯定逻辑(positive logic),也就是通过决策语句的Yes方向; 而不是否定逻辑(negative logic),也就是决策语句的No方向,这在RAPTOR中表示循环将继续执行的意思 * End of ch2-1 * 显然,在理解了RAPTOR设计者的意图以后, 带着清醒的头脑利用这个软件来设计、 移植和验证算法是非常重要的 第2章 算法设计与可视化PART A 《可视化计算》 学习目标 程序与算法有哪些异同? 算法有哪些基本特性? 算法的效率如何度量? RAPTOR如何实现计算可视化? 如何为算法设计做准备? * 算法定义 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。 通俗来
您可能关注的文档
- (汽车)中信证券-车闻天下第12期-汽车制动系统专题之二——新技术汇总.pdf
- (燃料敏化太阳能电池)Dye-Sensitized Solar Cells.pdf
- (苏教版)三年级科学上册课件 塑料 1.ppt
- (外文翻译)自适应鲁棒控制具有状态和输入时滞不确定系统.doc
- (王哲)新世纪与研究生公共英语教材 Reading B课文翻译.doc
- (西北)火力发电厂汽水管道支吊架的设计手册.pdf
- (真正好东西)偏最小二乘回归=多元线性回归分析+典型相关分析+主成分分析.doc
- [的设计理论] 生态工业园植物配置比较.doc
- [甘肃]泵站改建初步的设计报告.doc
- [高一]2502.经典时空观与相对论时空观.ppt
文档评论(0)