- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01-数结构-绪论
Thanks Wangqiong of Zhongbei college attaching to HYPERLINK /Nanjing Nanjing? HYPERLINK /Normal Normal? HYPERLINK /University University? PAGE 1-PAGE 5 第一章 绪论 第一节 什么是数据结构? 估猜以下软件的共性:学生信息管理、图书信息管理、人事档案管理。 数学模型:用符号、表达式组成的数学结构,其表达的内容与所研究对象的行为、特性基本一致。 信息模型:信息处理领域中的数学模型。 数据结构:在程序设计领域,研究操作对象及其之间的关系和操作。 忽略数据的具体含义,研究信息模型的结构特性、处理方法。 第二节 概念、术语 一、有关数据结构的概念 数据:对客观事物的符号表示。 例:生活中还有什么信息没有被数字化? 身份证,汽车牌号,电话号码,条形代码…… 数据元素:数据的基本单位。相当于记录。 一个数据元素由若干个数据项组成,相当于域。 数据对象:性质相同的数据元素的集合。 数据结构:相互之间存在特定关系的数据集合。 四种结构形式:集合、线性、树形、图(网)状 形式定义:(D,S,P) D:数据元素的集合(数据对象) S:D上关系的有限集 P:D上的基本操作集 逻辑结构:关系S描述的是数据元素之间的逻辑关系。 存储结构:数据结构在计算机中的存储形式。 顺序映象、非顺序映象、索引存储、哈希存储 逻辑结构与存储结构的关系: 逻辑结构:描述、理解问题,面向问题。 存储结构:便于机器运算,面向机器。 程序设计中的基本问题:逻辑结构如何转换为存储结构? 二、有关数据类型的概念 数据类型:值的集合和定义在该值集上的一组操作的总称。 包括:原子类型、结构类型。 抽象数据类型(ADT):一个数学模型及该模型上的一组操作。 核心:是逻辑特性,而非具体表示、实现。 课程任务: 学习ADT、实践ADT。 如:线性表类型、栈类型、队列类型、数组类型、广义表类型、树类型、图类型、查找表类型…… 实践指导: 为了代码的复用性,采用模块结构。 如:C中的头文件、C++中的类 第三节 ADT的表示与实现 本教材中,算法书写习惯的约定。 数据元素类型ElemType:int,float,char, char[] …… 引用参数 算法: void add(int a,int b,int c) { c=a+b; } 程序: void add(int a,int b,int *p_c){ *p_c=a+b; } 第四节 算法的描述及分析 一、有关算法的概念 算法:特定问题求解步骤的一种描述。 1)有穷性 2)确定性 3)可行性 二、算法设计的要求 好算法: 1)正确性 2)可读性 3)健壮性 4)高效,低存储 三、时间复杂度 事前估算:问题的规模,语言的效率,机器的速度 时间复杂度:在指定的规模下,基本操作重复执行的次数。 n:问题的规模。 f(n):基本操作执行的次数 T(n)=O(f(n)) 渐进时间复杂度(时间复杂度) 例:求两个方阵的乘积 C=A*B void MatrixMul(float a[][n],float b[][n],float c[][n]) { int i,j,k; for(i=0; in; i++) // n+1 for(j=0; jn; j++) // n(n+1) { c[i][j]=0; // n*n for(k=0; kn; k++) // n*n*(n+1) c[i][j]+ = a[i][k] * b[k][j]; // n*n*n } } 时间复杂度: 一般情况下,对循环语句只需考虑循环体中语句的执行次数,可以忽略循环体中步长加1、终值判断、控制转移等成分。 最好/最差/平均时间复杂度的示例: 例:在数组A[n]中查找值为k的元素。 for(i=0; in-1; i++) if(A[i]==k) return i; 四、常见时间复杂度 按数量级递增排序:
您可能关注的文档
最近下载
- 实施指南《GB21345 - 2024黄磷单位产品能源消耗限额》实施指南.pptx VIP
- 吉林省德惠市第三中学2024-2025学年七年级上学期9月月考地理试题.docx VIP
- 气流干燥器设计说明书.doc VIP
- 《电子商务基础》中职电子商务专业全套教学课件.pptx
- 桶装水项目质量管理方案.docx VIP
- 地震数据采集设备的收放方法、集运箱和车辆.pdf VIP
- 压力管道壁厚及开孔补强计算.xls VIP
- 四五级拼音版 (20220824修订).pdf VIP
- 幼儿园区域留痕培训.pptx VIP
- 2025年贵州省高职(专科)分类招生中职生文化综合考试试卷(英语试题)676.pdf VIP
文档评论(0)