大学计算机基础 第4节.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基本概念 基本数据结构 基本数据结构 基本数据结构 基本数据结构 基本数据结构 栈 栈 队列 二叉树 ?形态和基本性质 ?形态和基本性质 ?形态和基本性质 ?形态和基本性质 ?遍历 顺序查找 二分查找(折半查找) 直接插入排序 冒泡排序 直接选择排序 以顺序表作为存储结构 查找过程:从表中最后一个(或第一个)记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功;反之,若直至第一个记录,其关键字和给定值比较都不等,则表明表中没有所查记录,查找失败。 平均查找长度:为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值。长度为n的顺序表,在等概率情况下查找成功的平均查找长度为:(n+1)/2;若考虑到查找不成功的情形,则平均查找长度为:3(n+1)/4。 查找与排序 ?查找 对于任何一个顺序表,若其中的所有结点按键值的某种次序排列,则称为有序表。 二分查找法的基本思想是:每次将处于查找区间中间位置上的数据元素的键值x与给定值K比较,若不等则缩小查找区间(若K比中间值大则舍弃下半部分,若K比中间值小则舍弃上半部分)并在新的区间内重复上述过程,直到查找成功或查找区间长度为0(即查找不成功)为止。 当有序表的长度为n时,时间复杂度为 o(log2n) 查找与排序 ?查找 依次将每个记录插入到一个有序的子序列中去。 时间性能主要用于关键字的比较和记录的移动 直接插入排序算法的时、空性能 若各记录已排好序,关键字比较次数为n-1(最小值),记录的移动次数为0(最小值),时间复杂度是o(n)。 当各记录恰好是逆序排序时,关键字比较次数为(n+2)(n-1)/2;记录的移动次数为(n-1)(n+4)/2。时间复杂度为o(n2)。平均时间复杂度为o(n2); 空间复杂度为o(1)。 直接插入排序是稳定的排序。 查找与排序 ?排序 * 第4章 算法与基本数据结构 基本概念 基本数据结构 查找与排序 数据:是对客观事物的符号表示,在计算机科学中是指能输入到计算机中并被计算机存储、加工的符号总称。 ?数据结构的定义 数据元素:是数据的基本单位,由若干个数据项组成,在程序中作为一个整体而加以考虑和处理。数据元素具有完整确定的实际意义,有时也称为元素、结点、顶点或记录 结构:是数据元素之间的关联关系 数据结构:数据结构带有结构的同性质数据元素的集合 数据结构包括以下三方面内容: 逻辑结构、存储结构、和对数据的操作 逻辑结构:数据元素之间逻辑上的关系,它是数据的组织形式。通常将数据的逻辑结构简称为数据结构,数据的逻辑结构分两大类:线性结构和非线性结构。 具体可分为四类: ① 集合 ② 线性结构 ③ 树型结构 ④ 图状结构 其中③ 、④为非线性结构 集合 线性结构 树型结构 图状结构 基本概念 ?数据结构的内容 存储结构:数据元素以及数据元素之间的逻辑关系在计算机内存中的表示。一般地,一个存储结构包括以下两个主要部分: 基本概念 ?数据结构的内容 ① 存储结点(简称结点),每个结点存放一个数据元素 ② 数据元素之间关系的表示,也就是逻辑结构的计算机内部表示 常用的数据存储结构: 顺序存储方法 链式存储方法 索引存储方法 散列存储方法 数据的运算如查找、排序、增加、修改、删除 算法:算法是对具体问题求解过程和步骤的一种描述 基本概念 ?算法 算法的5个特性: ①有穷性 ②确定性 ③可行性 ④零个或多个的输入 ⑤有1个或多个的输出 算法设计的要求: ①正确性 ②可读性 ③健壮性 ④效率与低存储量需求 效率是指一个算法在计算机上运行所花费的时间,以时间复杂度来衡量。所谓时间复杂度是指算法中所包含简单操作的执行次数。存储量需求指算法执行过程中所需要占用存储器的存储空间,以空间复杂度来衡量。 时间复杂度:T(n)=O(f(n)) 其中的f(n)一般是算法中频度最大的语句频度,与问题的规模n有关。 常见的时间复杂度,按数量级递增排列依次为: O(1)?O(log2n)?O(n)?O(nlog2n)?O(n^2)? O(n^3)? O(n^k)?O(2^n) 基本概念 ?算法 算法的描述 用自然语言表示算法:就是用人们所熟悉的自然语言把算法的各个步骤依次表示出来。 用流程图表示算法:就是用一些大家共识的专用图形符号和带有箭头的流程线来表示算法。 用程序设计语言表示算法:用计算机能理解和执行的程序设计语言把算法表示出来,然后把程序输入计算机并执行,计算机才能按照预定的算法去解决问题。 基本概念 ?算法 线性表: 是n(n≥O)个同类型数据元素(

文档评论(0)

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

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

1亿VIP精品文档

相关文档