




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构,严蔚敏吴伟民编著,课程内容:计算机软件的基础知识数据结构课时安排:周二晚上上机锡昌科技楼402周四1、2节(单周)锡昌科技楼505周五下午锡昌科技楼505,第1章绪言,1.1什么是数据结构1.程序=数据结构+算法2.例子:例1图书馆的书目检索自动化系统,书目文件,例2计算机和人对奕问题,例3多叉路口交通灯管理问题,(a)五叉路口,(b)表示通路的图,3.数据结构定义:是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科,4.数据结构所处的地位:它是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。在计算机科学中,它不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它程序和大型应用程序的重要基础。,1.2基本概念和术语1.数据元素和数据项:1)数据(data)是对客观事物的符合表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。2)数据元素(dataelement)数据的基本单位,在程序中作为一个整体而加以考虑和处理。数据元素又为元素、结点、顶点或记录。3)数据项(dataitem)是数据不可分割的最小单位。通常作为数据元素的分量,数据项又称为字段或域。2.数据的数据结构(datastructure)相互之间存在一种或多种特定关系的数据元素的集合。,2)数据结构的形式定义:一个二元组Data_Structure(D,S)其中:D是数据元素的有限集,S是D上关系的有限集。,3.数据的逻辑结构:1)逻辑关系-数据元素间的关联方式或称邻接关系。2)逻辑结构-数据元素间逻辑关系的整体。它只抽象反映数据元素的逻辑关系。,4.数据的存储(物理)结构数据的逻辑结构在计算机存储器中的实现。,5.数据类型一个值的集合和定义在这个值集上的一组操作的总称。(操作是指数据结构上需要或能够进行的处理。)原子类型非结构。例如C语言中的整型等基本类型数据类型结构类型可以分解,成分可以是结构、非结构。例如数组,6.抽象数据类型一个数学模型以及定义在该模型上的一组操作。1)抽象数据类型:原子类型不可分解。固定聚和类型其值由确定数目的成分按某种结构组成。例如复数可变聚和类型“值”的成分的数目不确定。例如可定义“有序整数序列”的抽象数据类型,其中序列的长度是可变的。2)抽象数据类型的形式定义:一个三元组Data_Structure(D,S,P)其中:D是数据对象,S是D上关系集,P是对D的基本操作集。,1536,元素2,1400,元素1,1346,元素3,元素4,1345,h,链式存储,h,例C语言中,提供int,char,float,double等基本数据类型,数组、结构体、共用体、枚举等构造数据类型,还有指针、空(void)类型等。用户也可用typedef自己定义数据类型,typedefstructintnum;charname20;floatscore;STUDENT;STUDENTstu1,stu2,*p;,13抽象数据类型的表示与实现(略),14算法和算法分析1.4.1算法的概念:算法是特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个或多个操作。算法具有以下重要特性:,算法的描述采用C语言算法的评价1.4.2.算法设计的要求衡量算法优劣的标准1)正确性(correctness)应满足具体问题的需求。2)可读性(readability)为了人的阅读和交流。3)健壮性(robustness)输入非法数据也能适当地作出反应或进行处理。4)效率与低存储量高效率低存储,1.4.3.算法效率的度量:算法效率用依据该算法编制的程序在计算机上执行所消耗的时间来度量1.事后统计利用计算机内记时功能,不同算法的程序可以用一组或多组相同的统计数据区分缺点:必须先运行依据算法编制的程序所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣2.事前分析估计一个高级语言程序在计算机上运行所消耗的时间取决于:依据的算法选用何种策略问题的规模程序语言编译程序产生机器代码质量机器执行指令速度同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,所以使用绝对时间单位衡量算法效率不合适,估算时间复杂度的方法:从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作在算法中重复执行的次数作为算法运行时间的衡量准则。,3.渐近时间复杂度(时间复杂度):一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,算法的时间量度记作T(n)=O(f(n)称作算法的渐近时间复杂度,简称时间复杂度。,例1:NXN矩阵相乘,计算以下算法的时间复杂性。procedurematri(varA,B,C:ARRAY1.N,1.NOFinteger);/求n阶方阵A、B的乘积C/begin1.fori:=1tondo2.forj:=1tondo3.Ci,j:=0;4.fork:=1tondoCi,j:=Ci,j+Ai,k*bk,iend计算方法1:由于是一个三重循环,每个循环从1到n,则总次数为:nnn=n3故时间复杂度为T(n)=O(n3)。计算方法2:由于“乘法”运算是本例的基本操作,故整个算法的执行时间与该基本操作(乘法)重复执行的次数n3成正比,故时间复杂度为T(n)=O(n3)。,4.频度:是指该语句重复执行的次数。频度与问题的基本操作执行次数相同,故时间复杂度可通过频度来计算。例+x;s=0;将x自增看成是基本操作,则语句频度为,即时间复杂度为(1)即常量阶。例、for(I=1;I=n;+I)+x;s+=x;将x自增看成是基本操作,则语句频度为:n其时间复杂度为:O(n)即时间复杂度为线性阶。,例、for(j=1;j=n;+j)for(k=1;k=n;+k)+x;s+=x;将x自增看成是基本操作,则语句频度为:n2,其时间复杂度为:O(n2)即时间复杂度为平方阶。(补充)定理:若A(n)=amnm+am-1nm-1+a1n+a0是一个m次多项式,则A(n)=O(nm)(证略)。例for(i=2;i=n;+i)for(j=2;j=i-1;+j)+x;ai,j=x;语句频度为:1+2+3+n-2=(1+n-2)(n-2)/2=(n-1)(n-2)/2=(n2-3n+2)/2时间复杂度为O(n2)即此算法的时间复杂度为平方阶。,一个算法时间为O(1)的算法,它的基本运算执行的次数是固定的。因此,总的时间由一个常数(即零次多项式)来限界。而一个时间为O(n2)的算法则由一个二次多项式来限界。以下六种计算算法时间的多项式是最常用的。其关系为:O(1)O(logn)O(n)O(nlogn)O(n2)O(n3)指数时间的关系为:O(2n)O(n!)1change=TURE当a中初始序列为自小到大有序时,基本操作的执行次数为0,故最好情况:0次。当a中初始序列为自大到小有序时,基本操作的执行次数为1+2+3+n-1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 税法的考试题库及答案
- 华西护理考试题库及答案
- 《机械员》考试题库含答案(轻巧夺冠)
- 安全环保职业卫生消防考试试题及答案
- 2025年数据分析师招聘考试模拟题及答案集
- 2025年政府会计准则制度实操考试题库及解析
- 2025年【G1工业锅炉司炉】作业考试题库及G1工业锅炉司炉考试试题(含答案)
- 2025年教育系统事业单位招聘考试教材及模拟题集
- 2026届上海市北郊高级中学化学高二上期中达标测试试题含解析
- 2025年基础气象观测知识点详解及模拟题解析初级版
- 安全保密审计报告
- 《忆秦娥~ 娄山关》
- 新八年级上册数学开学第一课
- 医疗设备采购 投标技术方案 (技术方案)
- 小批量试产报告1
- 《项目管理飞行检查管理办法》宣贯交底
- 干熄焦余热发电安全预评价送审
- 脑卒中康复治疗流程图
- 四川大学法学院宪法学课件(第一章 什么是宪法)
- 中华人民共和国政府信息公开条例解读PPT
- 同济大学信纸
评论
0/150
提交评论