第3章3.3算法和程序设计精讲.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * 将原始数据放在数组A中; 设置i的初值为1,循环执行下列操作,直到i = n : { 确定A[i] 到A[n]中最小整数的位置,设为j ; 交换A[i]和[j] ; i = i +1 } 使用伪代码描述“选择排序”算法 使用伪代码描述算法 伪代码(Pseudo code)是用来描述算法的一种语言,它既类似于自然语言,又使用与程序设计语言相似的方法描述算法 优点:结构清晰,代码简单,可读性好,可以容易地以任何一种编程语言(Pascal, C, Java等)实现 每个整数是A的一个元素:A[1], A[2], ···, A[n] 4. 算法的分析 算法分析的基本内容 正确性:给定有效输入后,经过有限时间的计算,产生正确的输出结果 可读性 算法应该有利于阅读和交流,有助于对算法的理解,有助于对算法的调试和修改。 高效率与低存储量 时间复杂性(Time Complexity) : 指在计算机上运行该算法所花费的时间。 空间复杂性(Space Complexity) : 指算法在计算机上运行所占用的存储空间。 算法是计算机软件的灵魂 计算机的通用性是因为它能运行各种各样的程序,而程序之所以能解决问题,是因为它所体现了正确的算法 算法所解决的是一类问题而不是一个特定的问题,例如 排序(sort) 可以是表格内容的排序,也可以是文件夹中文件的排序,可以按数字或文字排序,也可以按日期排序,等等 查找(search), 可以在文档中查找某个单词或在硬盘中查找某个文件,也可在Web上查找某个网页,等等 开发计算机应用的核心是:根据实际问题给出解题的算法,然后再将该算法在计算机上实现(即开发成为软件) 计算机算法的4个特点 目的:完成某个特定的信息处理任务 必须满足的性质: ① 确定性:算法中每一步操作的含义必须清楚明确,无二义性 ② 可行性: 算法中有待实现的操作都是计算机可执行的,即必须在计算机的能力范围之内 ③ 有穷性: 算法在执行了有限步操作后必须结束 ④ 算法结束后至少产生一个输出(包括参量或状态的变化) 10 P.60 3.3.4 数据结构 数据结构 程序=算法+数据结构,算法是计算机程序的灵魂,数据结构是灵魂的载体。 计算机解决一个具体问题时,首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编出程序、进行测试、调整直至得到最终解答。 寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。 常用的数据结构 数组 (Array): 具有相同类型的若干变量按有序的形式组织的集合 栈 (Stack): 是只能在某一端插入和删除的特殊线性表,按照后进先出的原则存储数据。 队列 (Queue): 一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。 链表 (Linked List) : 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 树 (Tree): 是包含n(n0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。(3)K中各结点,对关系N来说可以有m个后继(m=0)。 图 (Graph): 图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。 3.3.5 常用程序设计语言 汇编语言 汇编语言是面向机器的程序设计语言。 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。 常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序更加优秀,但是代价是需要更长的时间来优化。 高级程序设计语言的发展 50年代:Fortran,ALGOL 60年代:COBOL语言,BASIC语言 70年代:Pascal 语言,C语言 80年代: Ada语言

您可能关注的文档

文档评论(0)

过各自的生活 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档