网站大量收购独家精品文档,联系QQ:2885784924

数据结构,算法及程序设计.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构,算法及程序设计

算法设计与分析 课程目的 课程目的: 计算机算法设计与分析导引 介绍算法分析概念 介绍算法设计的主要方法和基本思想; 能够用算法思想编写小程序,并能分析算法复杂度 不是程序设计课,也不是数学课 课程安排 课程安排 学生成绩评定方法:笔试+上机作业 上课时间及地点: 周一(单周),5,6节,23-414 周四,5,6节,23-316 Slides download from: /faculty/cfliu/Algorithm2011 主要参考书目 Sartaj Sahni,《Data Structures, Algorithms, and Applications in C++》, 机械工业出版社,2000 (影印版) Sartaj Sahni著,汪诗林等译,《数据结构、算法与应用--C++语言描述》,机械工业出版社,2003 (翻译版) T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms (the second edition),The MIT Press,2001《算法导论(第二版)》(影印版,中文本),高等教育出版社,2003 算法是计算机科学基础的重要主题 70年代前 计算机科学基础的主题没有被清楚地认清。 70年代 Donald E. Knuth出版了《The Art of Computer Programming》 以算法研究为主线 确立了算法为计算机科学基础的重要主题 1974年获得图灵奖。 70年代后 算法作为计算机科学核心推动了计算机科学技术飞速发展. 计算机科学的体系 解决一个计算问题的过程 什么是算法 算法(algorithm) 是对特定问题求解步骤的一种描述,是指令的有限序列。 具有以下5个特征: 算法的5个特征 程序(Program) 程序是算法用某种程序设计语言的具体实现。 程序(Program) 程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(5)。 操作系统,是程序还是算法? 操作系统,是一个在无限循环中执行的程序,因而不是一个算法。 操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。 为什么学习算法 算法是计算机科学的基础,更是程序的基石,只有具有良好的算法基础才能成为训练有素的软件人才。 算法的目的是求解问题。 问题和问题求解 常见的应用问题类型有: 1、搜索问题 所谓搜索,就是在给定的数据集合中寻找满足条件的数据对象。 例如,在图书管理中,若要了解全部读者的借阅信息,就需要对每一位读者的借阅记录依次输出,这是数据对象的遍历问题。如果我们要查找借书超期的读者,则是按照规定的最大借书期限这一特征值去查找满足该条件的记录。 2、排序问题 所谓排序,就是把一组无序的数据按照一定的规则排列起来。排序结果有升序和降序两种。 例如,为便于查询学生的考试成绩,对于成绩单,通常按照学号排序;而在招生录取中,也可以按照成绩的高低排序。 对于同一个问题,排序的算法是多种的,如插入排序、选择排序、交换排序等。 3、图论问题 图论问题主要是研究数据结构是图形结构或树形结构的算法问题。简单的定义,可以认为图是由一些顶点和顶点之间的边所构成的集合。 图结构可以用来对各种各样的实际应用问题建模,包括交通和通讯网络、工程项目时间表和各种竞赛。图应用算法主要包括图的遍历算法、最短路径算法、最小生成树算法、拓扑排序算法和网络流算法等。 4、组合数学问题 有一些问题要求寻找一个组合对象,比如一个排列、一个组合或者一个子集,这些对象能够满足特定的条件并具有我们想要的特性(如价值最大化或者成本最小化)。从更抽象的角度来看,这类问题是组合数学问题,例如旅行售货商问题和图着色问题。 组合数学问题所涉及的应用领域更加广阔,例如拓扑学、图论、博弈论、线性规划等。组合数学问题的特点是随着问题规模的增加,已达到计算机的处理能力的极限。所以,称组合数学问题是计算机中的难解问题。 5、几何问题 几何算法处理类似于点、线、多面体这样的几何对象。经典的计算几何问题,如最近点对问题和凸包问题。顾名思义,最近点对问题求的是给定平面上的n个点中,寻找距离最近的两个点。凸包问题要求找一个能把给定集合中所有点包含都在里面最小凸多边形。当前,几何问题算法在计算机图形学、机器人技术和断层X摄像技术等方面都有广泛的应用。 6、数值计算问题 数值计算问题是另一大类问题,它要解决的问题包括:求解方程或者方程组和求数值积

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档