- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构——第一讲(绪论)
第1章 绪论
知识点:
数据结构的基本概念
数据的逻辑结构和存储结构(重点)
算法描述和分析方法 (重点、难点)
第一节 数据结构的基本概念
数据和数据结构的概念
如上。
例1:学生成绩登记表
表1-1 学生信息表
学号 姓名 性别 英语 数学 语文 2000001 张三 男 80 85 86 2000002 李四 男 71 7 4 76 2000003 王五 女 92 81 84
例2:井字棋对奕问题
例3:七桥问题
18世纪,欧洲小城哥尼斯堡
第二节 数据的逻辑结构和存储结构
数据结构可划分两大类:① 逻辑结构;② 存储结构(物理结构, 以计算机为媒和介质派生出来)。
1 逻辑结构
逻辑结构:数据之间外在的位置关系。
逻辑结构可分三类——线性结构、树结构和图结构(树与图合称非线性结构)。
见上例一(线性结构)、例二(树结构)和例三(图结构)
2 存储结构
存储结构(物理结构):数据在计算机内的存储结构。
存储结构可分两类——顺序存储结构和链式存储结构。
特点:借助元素在存储内的相对位置 特点:借助指示数据元素存储位置的指针
表示元素之间的逻辑关系 表示元素之间的逻辑关系
数据结构研究的内容
① 数据的逻辑结构;② 数据的存储结构;③它们之间的相互运算。
第三节 算法
1、算法的概念
算法 + 数据结构 = 程序
由Pascal语言的创始者,瑞士计算机科学家沃斯(Wirth)1976 年提出
它实际上说明了——用计算机解决一个具体问题时,大致需要经过以下个步骤:(1)从具体问题抽象出适当的数学模型;(2)设计求解数学模型的; (3)编制程序、运行并调试程序,直到解决实际问题。自然语言类程序语言流程图细胞裂变癌细胞的扩散in, i++) /*判断n次,频度为n*/
for (j=0; jn,j++) /*判断n次,但又是i的内循环体,执行n次,频度为n2 */
{
c[i][j]=0; /*只执行1次,但又是i, j的内循环体,执行n2次,频度为n2 */
for (k=0; kn,k++) /*判断n次,但又是i, j的内循环体,执行n2次,频
度为n3 */
c[i][j] = c[i][j] + a[i][k] * b[k][j]; /*执行1次,但又是i, j, k的内循环体,
执行n3次,频度为n3*/
}
因此,总的语句频度 = n + n2 + n2 + n3 + n3 = 2 n3 + 2n2 + n
对于上式,当n→ ∞时,显然有:
上式表示,语句的频度随数据个数n的增长与n3(上述多项式的最高次幂)的增长相同,或者说——两者具有相同的数量级。
4.3.2 算法的时间复杂度——与语句的执行次数有关
若
则T(n) = O(f(n))
其中: ① T(n)为算法的时间复杂度的正规化表示方法,它是问题规模n的函数
② k为常量
③ f(n)表示与n有关的函数,例如上例为n3
④ T(n) = O(f(n)) 的含义:该算法所耗时间与f(n)是等数量级的。
当然f(n) 可以是其他类型的函数。
例5:
i = 1;
while (i = n) /*相应的,和循环体内语句执行次数相同*/
i = i*2; /*设执行次数为x,则2x-1=n,则有x=log2 n+1*/
则,T(n) = Ο(log2 n)
例6:
i = 1;
while (i = n) /*相应的,和循环体内语句执行次数相同*/
i = i+2; /*设执行次数为x,则2x-1=n,则有x= (n+1)/2次*/
则,T(n) = Ο(n)
常见的时间复杂度关系如下:Ο(1)<Ο(lg2 n)<Ο(n)<Ο(nlg2 n)<Ο(n2 )<Ο(n3 ) <<Ο(2n )Ο(1)表示Ο(1) =Ο(n0)。
5
图1-2 七桥问题
文档评论(0)