网络互联技术_第1页
网络互联技术_第2页
网络互联技术_第3页
网络互联技术_第4页
网络互联技术_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构计算机科学系 张红军1课时安排:数据结构48学时上机16学时双周,周三第3、4节网络技术实验室教材:数据结构简明教程 徐翠霞 北京航空航天大学出版社参考书:数据结构(C语言版) 严蔚敏、吴伟民 清华大学出版社第一章计算机科学系 张红军3案例1.1 数据模型的确定案例说明对于下面三个问题,试分别设计合适的数据结构图书馆的书目检索系统自动化问题计算机和人对弈问题多叉路口交通灯的管理问题案例目的了解数据结构的基本概念和术语,能够根据需求为实际问题确定合适的数据模型了解线性表、树和图3种数据结构的基本特点。1.1 基本概念和术语技术要点书目自动检索系统登录号:书名:作者名:分类号:出版单位:出

2、版时间:价格:书目卡片书目文件按书名按作者名按分类号索引表线性表人机对奕问题树.多叉路口交通灯管理问题CEDABABACADBABCBDDADBDCEAEBECED图相关知识及注意事项数据(data)所有能输入到计算机中去的描述客观事物的符号数据元素(data element)数据的基本单位,也称节点(node)或记录(record)数据项(data item)有独立含义的数据最小单位,也称域(field)数据结构(data structure)数据元素和数据元素关系的集合根据数据元素间关系的基本特性,有四种基本数据结构(集合)数据元素间除“同属于一个集合”外,无其它关系线性结构一个对一个,如

3、线性表、栈、队列树形结构一个对多个,如树图状结构多个对多个,如图(1)数据的逻辑结构 只抽象反映数据元素的逻辑关系(2)数据的存储结构 数据的逻辑结构在计算机存储器中的实现数据的逻辑结构与存储结构密切相关算法设计 逻辑结构算法实现 存储结构存储结构分为:顺序存储结构借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系链式存储结构借助指示元素存储地址的指针表示数据 元素间的逻辑关系元素n.元素i.元素2元素1LoLo+mLo+(i-1)*mLo+(n-1)*m存储地址存储内容Loc(元素i)=Lo+(i-1)*m顺序存储1536元素21400元素11346元素3 元素41345h存储地址 存

4、储内容 指针 1345 元素1 1400 1346 元素4 . . . 1400 元素2 1536 . . . 1536 元素3 1346 链式存储 h 数据的逻辑结构 数据的存储结构 数据的运算:检索、排序、插入、删除、修改等 线性结构 非线性结构 顺序存储 链式存储 线性表栈队树形结构图形结构数据结构的三个方面:数据类型高级语言中指数据的取值范围及其上可进行的操作的总称例 C语言中,提供int, char, float, double等基本 数据类型,数组、结构体、共用体、枚举 等构造数据类型,还有指针、空(void)类 型等。用户也可用typedef 自己定义数据类型typedef st

5、ruct int num; char name20; float score;STUDENT;STUDENT stu1,stu2, *p;案例1.2 矩阵乘法算法的时间复杂度分析案例说明已知两个n阶方阵A和B,乘积为C=AB,算法代码如下:for(i=1;i=n;+i) for(j=1;j=n;+j) cij=0; for(k=1;k=n;+k) cij+=aik*bkj; 1.2 算法和算法分析案例目的了解算法的特性和算法描述的方法。掌握计算语句频度和估算算法时间复杂度的方法。技术要点cij+=aik*bkj 频度最大,为f(n)=n3。该算法的时间复杂度为T(n)=O(n3)。1.2 算法

6、和算法分析相关知识及注意事项1.算法及其特性算法(algorithm) 解决某一特定问题的具体步骤的描述,是指令的有限序列算法特性输出一个算法有零个或多个输出输入一个算法有零个或多个输入算法是能行的可行性义性切定义的,不能产生二算法的每一步必须是确确定性限步骤之后结束一个算法必须在执行有有穷性2.算法描述自然语言程序流程图N-S图程序设计语言3.算法评价 正确性(correctness)、可读性(readability)、健壮性(robustness)、效率与低存储量时间复杂度:基本操作重复执行的次数的阶数 T(n)=o(f(n)空间复杂度:s(n)=o(f(n)算法效率用依据该算法编制的程序

7、在计算机上执行所消耗的时间来度量1.事后统计 所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣 2.事前分析估计 依据的算法选用何种策略 问题的规模 程序语言 编译程序产生机器代码质量 机器执行指令速度 同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,所以使用绝对时间单位衡量算法效率不合适(1)时间复杂度 一般情况下,算法中频度最大的语句的执行的次数是问题规模n的某个函数,算法的时间量度记作 T(n)=O(f(n) 它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度简称时间复杂度。 语句频度指的是该语句重复执行的

8、次数k=0;for(i=1;i=n;i+) for(j=1;j=n;j+) k+;k=0;for(i=1;i=n;i+) for(j=i;j=n;j+) k+;k=0;for(i=1;i=n;i+) for(j=1;j=n;j+) k+;k=0;for(i=1;i=n;i+) for(j=i;j=n;j+) k+;例 求下列程序段的时间复杂度:for(i=1;i=n;+i) for(j=1;j=n;+j) cij=0; for(k=1;k=1 & change; -i) change=0; for(j=0;jaj+1) temp=aj; aj=aj+1; aj+1=temp; change=1; 最好情况:O(n)最坏情况:O(n2)以下六种计算算法时间的多项式是最常用的。其关系为: O(1)O(logn)O(n)O(nlogn)O(n2)O(n3)指数时间的关系为:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论