- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
1
绪论
程序=算法+数据结构
——Nicklaus Wirth(1934-)
Pascal之父,1984年图灵奖得主。他的学生Philipe Kahn和Anders Hejlsberg(Delphi之父)靠Turbo Pascal起家,创办了Borland公司。
第1节 什么是数据结构?
许多软件存在共性:学生信息管理、图书信息管理、人事档案管理……
数学模型:用符号、表达式组成的数学结构,其表达的内容与所研究对象的行为、特性基本一致。
信息模型:信息处理领域中的数学模型。
(信息模型的核心)数据结构:在程序设计领域,研究操作对象及其之间的关系和操作。
忽略数据的具体含义,研究信息模型的结构特性、处理方法。
第2节 概念、术语
2.1 有关数据结构的概念
数据:对客观事物的符号表示。
“数据是对事实、概念或指令的一种特殊表达形式,这种特殊的表达形式可以用人工的方式或者用自动化的装置进行通信、翻译转换或进行加工处理。”(ISO)
例:生活中还有什么信息没有被数字化?
身份证,汽车牌号,电话号码,条形代码……
例:《梁山好汉武艺之定量分析》
武力W=log2 X,(X为小喽罗的数目),W∈[0,10]。
普通喽罗的武力=1;最高手的武力=10,即对付1024人。
数据元素:数据的基本单位。相当于记录。
一个数据元素由若干个数据项组成,相当于域。
数据对象:性质相同的数据元素的集合。
数据结构:相互之间存在特定关系的数据集合。
四种结构形式:集合、线性、树形、图(网)状
逻辑结构:关系S描述的是数据元素之间的逻辑关系。
形式定义:(D,S,P)
D:数据元素的集合(数据对象)
S:D上关系的有限集
P:D上的基本操作集
存储结构:数据结构在计算机中的存储形式。
顺序映象、非顺序映象、索引存储、哈希存储
逻辑结构与存储结构的关系:
逻辑结构:描述、理解问题,面向问题。
存储结构:便于机器运算,面向机器。
程序设计中的基本问题:逻辑结构如何转换为存储结构。
2.2 有关数据类型的概念
数据类型:值的集合和定义在该值集上的一组操作的总称。
形式:类
抽象数据类型(ADT):一个数学模型及该模型上的一组操作。
核心:是逻辑特性,而非具体表示、实现。
形式:模板类
课程任务:
学习ADT、实践ADT。
如:线性表类型、栈类型、队列类型、数组类型、广义表类型、树类型、图类型、查找表类型……
第3节 算法的描述及分析
3.1 有关算法的概念
算法:特定问题求解步骤的一种描述。
1)有穷性 2)确定性 3)可行性
3.2 算法设计的要求
好算法:
1)正确性 2)可读性 3)健壮性 4)高效,低存储
3.3 时间复杂度
事前估算:问题的规模,语言的效率,机器的速度
时间复杂度:在指定的规模下,基本操作重复执行的次数。
n:问题的规模。
f(n):基本操作执行的次数
T(n)=O(f(n)) 渐进时间复杂度(时间复杂度)
例:求两个方阵的乘积 C=A*B
MATRIXMLT(float a[n][n],float b[n][n],float c[n][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;
3.4 常见时间复杂度
按数量级递增排序:
将指数时间算法
您可能关注的文档
最近下载
- 实验动物学(462页PPT课件).pptx VIP
- Unit 5 Let’s go Hit it big课件 2025外研版英语四年级上册.ppt
- 高教版中职历史基础模块中国历史第七课三国两晋南北朝时期的科技与文化(教案).pdf VIP
- CJJT 291-2019地源热泵系统工程勘察标准.docx VIP
- 《红星照耀中国》知识点整理.docx VIP
- 康士廉CS4000中文说明书.pdf VIP
- 车辆运营服务方案.docx VIP
- 《消费心理学》全套完整版教学课件(共217页PPT).pptx
- ANSI ESD S20.20-2021(完整中文版本).docx VIP
- 钢筋承包合同范本.docx VIP
文档评论(0)