计算机科学概论第6章 算法和数据结构.pptVIP

计算机科学概论第6章 算法和数据结构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非线性结构 二叉树 定义 它的每个结点最多有两个分支 对于根结点来说,所有左侧分支上的结点构成的子树称为左子树,所有右侧分支上的结点构成的子树称为右子树 特殊结点 空二叉树 不包含任何结点的二叉树称为空二叉树; 满二叉树 所有的分支结点都有左右子结点,并且所有叶子结点都在二叉树的最深一层 30 非线性结构 31 非线性结构 二叉树 存储方式 顺序存储 链式存储 32 非线性结构 33 非线性结构 34 非线性结构 图 存储方式 邻接矩阵 邻接矩阵利用矩阵描绘了顶点之间的相邻关系 邻接表 每个顶点单独建立一个链表,链表的第一个结点的数据域为该顶点的信息,链表其他结点的数据域为该顶点的邻接点信息(对于无向图)或出边邻接点信息。 35 * 算法和数据结构 Outline: 算法的概念 数据结构概念 线性结构 非线性结构 算法研究方面 经典算法问题简介 算法研究方面 搜索算法 定义 搜索算法是指在所有的解形成的空间中找到中最优的或需要的解 常见算法 枚举算法 二分搜索算法 深度优先算法 广度优先算法 启发式算法 A*搜索算法、遗传算法 37 算法研究方面 排序算法 定义 使一堆记录,按照其中的某个关键字或某些关键字的大小,递增或递减地排列起来的操作 稳定性 在排序过程中,关键字键值相同但是位置有先后的几个元素,在排序结束之后他们的相对位置会不会发生改变 分类 稳定排序算法 不稳定排序算法 38 算法研究方面 排序算法 常见算法 交换排序的算法 冒泡排序 快速排序算法 插入排序 选择策略 选择排序 堆排序 分治算法 归并排序 39 算法研究方面 动态规划 定义 原问题分解为简单的子问题进行处理,然后再使用子问题得到的结果来求解原问题 是运筹学的一个分支,在计算机科学、数学和经济学中被广泛地使用 分类 线性动态规划 区域动态规划 树形动态规划 背包动态规划 * 算法研究方面 贪心策略 定义 一种在每一步中都选择采取在当前状态下中最好或最优的选择,从而导致结果是最优的 对每个子问题都做出局部最优的解,而且并不回退 动态规划算法的则是根据每一步保存的结果选择继续进行或回退 问题 所有的最优化问题,贪心算法并不一定能够得到最优的解 有一部分的最优化问题通过贪心算法可以得到最优解 * * 《计算机科学概论》 第6章 算法和数据结构 * 算法和数据结构 Outline: 算法的概念 数据结构概念 线性结构 非线性结构 算法研究方面 经典算法问题简介 算法的概念 算法定义 算法 算法就是事物的一系列执行步骤 算法的特征 有穷性 在执行有穷多步之后结束,每一步都可在有穷时间完成 确定性 每一步都可在有穷时间内完成 可行性 每一步都可在有穷时间内完成 有输入 有输出 * 算法的概念 算法性能的表示 算法的目标 正确性 算法能够正确地执行预先规定的功能和性能要求 可使用性 要求算法能够方便地使用 可读性 算法应该易于人的理解 健壮性 求算法具有很好的容错性 高效率与低存储量需求 算法的性能或者效率比较低 * 算法的概念 * 算法的概念 算法结构与表示 算法的控制结构 顺序结构 若干个依次执行的处理步骤组成的 条件分支结构 先根据条件做出判断,再决定执行哪一种操作的结构 循环结构 需要重复执行的同一操作的结构 * 算法的概念 算法结构与表示 算法的控制结构 控制结构的共同点 每个循环结构都只有一个入口和一个出口,也就意味着必有输入和输出,而且对于同一输入,执行多次必然会得到同样的输出。 结构内的每一部分都会有机会被执行到,即对于每一个框来说都应当有一条入口到出口的路径通过它。 结构内不存在死循环,即无终止的循环,在流程图和算法中是不允许死循环出现的。 * 算法的概念 算法结构与表示 自然语言表示 表示算法的最简单的方法。 缺点 当算法中存在比较多的分支或循环的时候,就很难用自然语言来描述清楚 书写起来会给算法的设计者带来很多的麻烦 自然语言会有不同程度的歧义存在,所以很容易造成读者理解错算法设计者的意图 * 算法的概念 算法结构与表示 伪代码表示 使算法能够通俗地被表示 结构清晰、代码简单、可读性好并且类似于自然语言 规则 赋值 For循环 While循环 If条件判断 Procedure名称 * 算法的概念 算法结构与表示 流程图表示 用特定的图形加上说明来描述算法的一种图 优点 能够清晰地看出算法的执行过程 使用标准中规定流程线 基本元件 矩形框 菱形框 箭头线 圆角矩形 平行四边形 * * 算法和数据结构 Outline: 算法的概念 数据结构概念 线性结构 非线性结构 算法研究方面 经典算法问题简介 数据结构的概念 数据结构的定义 定义 数据结构作用在数据元素上,表示了数据以及数据之间的联系,因此可以把数据结构看做

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档