版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实用数据结构与算法设计第1章绪论实用数据结构与算法设计第1章绪论1课程内容:计算机软件的基础知识———数据结构课时安排:数据结构——32学时上机——8学时教材:实用数据结构与算法设计庄晋林等参考书:数据结构严蔚敏清华课程内容:教材:2目录
1.1数据结构的发展史及地位1.2数据结构的定义1.3数据类型1.4算法及算法分析目录1.1数据结构的发展史及地位1.23数据结构:是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数学硬件软件数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。数据结构:数学硬件软件数据结构数据结构是一门研41.2数据结构的定义1、线性表示例1.2数据结构的定义1、线性表示例5例1书目自动检索系统书目文件按书名按作者名按分类号索引表线性表例1书目自动检索系统书目文件按书名按作者名按分类号索引表线6例2人机对奕问题树……..……..…...…...…...…...例2人机对奕问题树……..……..…...…...…..7什么是数据结构?答:(见教材P6)是相互之间存在一种或多种特定关系的数据元素的集合,表示为:(数值或非数值)Data_Structure=(D,S)或:是指同一数据元素类中各元素之间存在的关系。亦可表示为:S=(D,R)或B=(K,R)元素有限集关系有限集1.2.2基本概念及术语什么是数据结构?答:(见教材P6)是相互之间存在一种或多8
1、数据(data)—所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息)。
2、数据元素(dataelement)—是数据的基本单位,具有完整确定的实际意义(又称元素、结点,顶点、记录等)。数据项(dataitem)——构成数据元素的项目。是具有独立含义的最小标识单位(又称字段、域、属性等)。术语:数据、数据元素、数据项、数据对象三者之间的关系:数据>数据元素>数据项例:班级通讯录>个人记录>姓名、年龄……1、数据(data)—所有能被计算机识别、存储和处理94、数据结构(datastructure)
◎数据结构有逻辑结构和物理结构之分。◎物理结构是一种逻辑结构在存储器中的存储方式,存储方式有顺序、链接、索引、散列等多种,所以一种逻辑结构可以采用多种物理结构存储。◎通常所说的数据结构就是指逻辑结构。3、数据对象(dataobject)——性质相同的数据元素的集合,是数据的一个子集。4、数据结构(datastructure)◎数据结10什么叫数据的逻辑结构?答:指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为4类:集合结构:
仅同属一个集合线性结构:一对一(1:1)
树结构:一对多(1:n)
图结构:多对多(m:n)非线性线性什么叫数据的逻辑结构?答:指数据元素之间的逻辑关系。即从逻11什么叫数据的物理结构?答:物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列什么叫数据的物理结构?答:物理结构亦称存储结构,是数据的逻辑12元素n……..元素i……..元素2元素1LoLo+mLo+(i-1)*mLo+(n-1)*m存储地址存储内容Loc(元素i)=Lo+(i-1)*m顺序存储元素n……..元素i……..元素2元素1LoLo+mLo+(131536元素21400元素11346元素3∧元素41345h存储地址存储内容指针1345元素114001346元素4∧…….……..…….1400元素21536…….……..…….1536元素31346
链式存储
h1536元素21400元素11346元素3∧元素4134514什么是数据的运算?答:在数据的逻辑结构上定义的操作算法。在数据的存储结构上实现。最常用的数据运算有5种:插入、删除、修改、查找、排序什么是数据的运算?答:在数据的逻辑结构上定义的操作算法。在数151.3数据类型数据类型与抽象数据类型的区别?抽象数据类型如何定义?3抽象数据类型如何表示和实现?
讨论:1.3数据类型数据类型与抽象数据类型的区别?讨论:161、数据类型与抽象数据类型的区别?数据类型:是一个值的集合和定义在该值上的一组操作的总称。抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。1、数据类型与抽象数据类型的区别?数据类型:是一个值的集合和172、抽象数据类型如何定义?抽象数据类型可以用以下的三元组来表示:
ADT=(D,S,P)数据对象D上的关系集D上的操作集ADT抽象数据类型名{数据对象:<数据对象的定义>数据关系:<数据关系的定义>基本操作:<基本操作的定义>}ADT抽象数据类型名ADT常用定义格式2、抽象数据类型如何定义?抽象数据类型可以用以下的三元组来表183、抽象数据类型如何表示和实现?
抽象数据类型可以通过固有的数据类型(如整型、实型、字符型等)来表示和实现。注1:它有些类似C语言中的结构(struct)类型,但增加了相关的服务。注2:教材中用的是类C语言(介于伪码和C语言之间)作为描述工具。但上机时要用具体语言实现,如C或C++等3、抽象数据类型如何表示和实现?抽象数据类型可以通过固191.4算法和算法分析1.什么是算法?如何评判一个算法的好坏?2.时间复杂度和空间复杂度如何表示?3.计算举例讨论:1.4算法和算法分析1.什么是算法?如何评判一个算法的20程序设计实质=好算法+好结构答:算法是解决某一特定类型问题的有限运算序列。是一系列输入转换为输出的计算步骤。常用时间复杂度来衡量1.什么是算法?如何评判一个算法的好坏?算法有5个基本特性:算法评价有5个指标:有穷性、确定性、可行性、输入和输出运行时间、占用空间、正确性、健壮性和可读性常用空间复杂度来衡量程序设计实质=好算法+好结构答:算法是解决某一特定类型问题的21例:分析以下程序段的时间复杂度。i=1;①while(i<=n) i=i*2;②该算法的运行时间由程序中所有语句的频度(即该语句重复执行的次数)之和构成。解:分析:显然,语句①的频度是1。设语句2的频度是f(n),则有:即f(n)≤log2n,取最大值f(n)=log2n所以该程序段的时间复杂度T(n)=1+f(n)=1+log2n=
O(log2n)算法的时间复杂度是由嵌套最深层语句的频度决定的。例:分析以下程序段的时间复杂度。i=1;223、空间复杂性(SpaceComplexity)
◎算法运行中占用空间包括算法本身占用,输入输出数据占用和运行中的临时占用。
◎同一个问题,算法不同,运行中的临时空间不同,即空间复杂性不同。
◎C只考虑在运行中为局部变量分配的存贮空间的大小,一般也以数量级表示。3、空间复杂性(SpaceComplexity)◎23时间复杂度T(n)按数量级递增顺序为:
注1:O()为渐近符号。注2:空间复杂度S(n)按数量级递增顺序也与上表类同。复杂度高复杂度低时间复杂度T(n)按数量级递增顺序为:注1:O()为渐近符24渐进符号(O)的定义:当且仅当存在一个正的常数C,使得对所有的
nn0,有f(n)Cg(n),则f(n)=O(g(n))3n+2=O(n)/*3n+24nforn2*/3n+3=O(n)/*3n+34nforn3*/100n+6=O(n)/*100n+6101nforn10*/10n2+4n+2=O(n2)/*10n2+4n+211n2forn5*/6*2n+n2=O(2n) /*6*2n+n27*2nforn4*/例:渐进符号(O)的定义:当且仅当存在一个正的常数C,使得对所有25实用数据结构与算法设计第1章绪论实用数据结构与算法设计第1章绪论26课程内容:计算机软件的基础知识———数据结构课时安排:数据结构——32学时上机——8学时教材:实用数据结构与算法设计庄晋林等参考书:数据结构严蔚敏清华课程内容:教材:27目录
1.1数据结构的发展史及地位1.2数据结构的定义1.3数据类型1.4算法及算法分析目录1.1数据结构的发展史及地位1.228数据结构:是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数学硬件软件数据结构
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。数据结构:数学硬件软件数据结构数据结构是一门研291.2数据结构的定义1、线性表示例1.2数据结构的定义1、线性表示例30例1书目自动检索系统书目文件按书名按作者名按分类号索引表线性表例1书目自动检索系统书目文件按书名按作者名按分类号索引表线31例2人机对奕问题树……..……..…...…...…...…...例2人机对奕问题树……..……..…...…...…..32什么是数据结构?答:(见教材P6)是相互之间存在一种或多种特定关系的数据元素的集合,表示为:(数值或非数值)Data_Structure=(D,S)或:是指同一数据元素类中各元素之间存在的关系。亦可表示为:S=(D,R)或B=(K,R)元素有限集关系有限集1.2.2基本概念及术语什么是数据结构?答:(见教材P6)是相互之间存在一种或多33
1、数据(data)—所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息)。
2、数据元素(dataelement)—是数据的基本单位,具有完整确定的实际意义(又称元素、结点,顶点、记录等)。数据项(dataitem)——构成数据元素的项目。是具有独立含义的最小标识单位(又称字段、域、属性等)。术语:数据、数据元素、数据项、数据对象三者之间的关系:数据>数据元素>数据项例:班级通讯录>个人记录>姓名、年龄……1、数据(data)—所有能被计算机识别、存储和处理344、数据结构(datastructure)
◎数据结构有逻辑结构和物理结构之分。◎物理结构是一种逻辑结构在存储器中的存储方式,存储方式有顺序、链接、索引、散列等多种,所以一种逻辑结构可以采用多种物理结构存储。◎通常所说的数据结构就是指逻辑结构。3、数据对象(dataobject)——性质相同的数据元素的集合,是数据的一个子集。4、数据结构(datastructure)◎数据结35什么叫数据的逻辑结构?答:指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为4类:集合结构:
仅同属一个集合线性结构:一对一(1:1)
树结构:一对多(1:n)
图结构:多对多(m:n)非线性线性什么叫数据的逻辑结构?答:指数据元素之间的逻辑关系。即从逻36什么叫数据的物理结构?答:物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。存储结构可分为4大类:顺序、链式、索引、散列什么叫数据的物理结构?答:物理结构亦称存储结构,是数据的逻辑37元素n……..元素i……..元素2元素1LoLo+mLo+(i-1)*mLo+(n-1)*m存储地址存储内容Loc(元素i)=Lo+(i-1)*m顺序存储元素n……..元素i……..元素2元素1LoLo+mLo+(381536元素21400元素11346元素3∧元素41345h存储地址存储内容指针1345元素114001346元素4∧…….……..…….1400元素21536…….……..…….1536元素31346
链式存储
h1536元素21400元素11346元素3∧元素4134539什么是数据的运算?答:在数据的逻辑结构上定义的操作算法。在数据的存储结构上实现。最常用的数据运算有5种:插入、删除、修改、查找、排序什么是数据的运算?答:在数据的逻辑结构上定义的操作算法。在数401.3数据类型数据类型与抽象数据类型的区别?抽象数据类型如何定义?3抽象数据类型如何表示和实现?
讨论:1.3数据类型数据类型与抽象数据类型的区别?讨论:411、数据类型与抽象数据类型的区别?数据类型:是一个值的集合和定义在该值上的一组操作的总称。抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。1、数据类型与抽象数据类型的区别?数据类型:是一个值的集合和422、抽象数据类型如何定义?抽象数据类型可以用以下的三元组来表示:
ADT=(D,S,P)数据对象D上的关系集D上的操作集ADT抽象数据类型名{数据对象:<数据对象的定义>数据关系:<数据关系的定义>基本操作:<基本操作的定义>}ADT抽象数据类型名ADT常用定义格式2、抽象数据类型如何定义?抽象数据类型可以用以下的三元组来表433、抽象数据类型如何表示和实现?
抽象数据类型可以通过固有的数据类型(如整型、实型、字符型等)来表示和实现。注1:它有些类似C语言中的结构(struct)类型,但增加了相关的服务。注2:教材中用的是类C语言(介于伪码和C语言之间)作为描述工具。但上机时要用具体语言实现,如C或C++等3、抽象数据类型如何表示和实现?抽象数据类型可以通过固441.4算法和算法分析1.什么是算法?如何评判一个算法的好坏?2.时间复杂度和空间复杂度如何表示?3.计算举例讨论:1.4算法和算法分析1.什么是算法?如何评判一个算法的45程序设计实质=好算法+好结构答:算法是解决某一特定类型问题的有限运算序列。是一系列输入转换为输出的计算步骤。常用时间复杂度来衡量1.什么是算法?如何评判一个算法的好坏?算法有5个基本特性:算法评价有5个指标:有穷性、确定性、可行性、输入和输出运行时间、占用空间、正确性、健壮性和可读性常用空间复杂度来衡量程序设计实质=好算法+好结构答:算法是解决某一特定类型问题的46例:分析以下程序段的时间复杂度。i=1;①while(i<=n) i=i*2;②该算法的运行时间由程序中所有语句的频度(即该语句重复执行的次数)之和构成。解:分析:显然,语句①的频度是1。设语句2的频度是f(n),则有:即f(n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学门卫招聘流程
- 办公室设计施工一体化合同范本
- 网络安全招投标投诉处理规范
- 石材加工招投标监督技巧
- 内部通讯稿收发规定
- 船只租赁终止协议范本
- 矿区安全围墙施工合同
- 养老机构财务危机应对策略
- 建筑行业货款回收措施
- 电力工程安全生产培训管理办法
- 2024年官方兽医考试题库(判断题)
- 职业健康安全培训课件(共32张课件)
- 2024年全国统考“营养师或营养指导员”相关知识考前试题库与参考答案
- 2024年07月首都博物馆2024年招考17名合同制用工人员笔试近年2018-2023典型考题及考点剖析附答案带详解
- 2024CSCO结直肠癌诊疗指南解读
- 大学生毕业论文写作教程(高校毕业生论文写作指课程导)全套教学课件
- (正式版)QBT 2174-2024 不锈钢厨具
- 监控维修施工方案
- 是谁杀死了周日
- 2024年辽宁铁道职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 主播艺人入职面试信息登记表
评论
0/150
提交评论