数w据结构课件 吴伟民编著.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数w据结构课件 吴伟民编著

? 常见函数的时间复杂度按数量递增排列及增长率。 常数阶O(1) 对数阶O(log2n) 线性阶O(n) 线性对数阶O(nlog2n) 平方阶O(n2) 立方阶O(n3) …… k次方阶O(nk) 指数阶O(2n) 与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。记作: S(n)=O(f(n)) 其中n为问题的规模(或大小) 我们一般所讨论的是除正常占用内存开销外的辅助存储单元规模。讨论方法与时间复杂度类似,不再赘述。 算法的存储空间需求 本章小结——知识结构图 绪 论 数据结构 算 法 基本概念 逻辑结构 存储结构 ⑴数据 ⑵数据元素 ⑶数据对象 ⑷ADT ⑴逻辑结构 ⑵数据结构 的分类 ⑴存储结构 ⑵常用存储 方法 基本概念 算法分析 ⑴算法 ⑵算法特性 ⑶评价算法 ⑷描述算法 ⑴问题规模 ⑵基本语句 ⑶时间复杂度 ⑷大O记号 关 系 作业: 公元5世纪末,我国古代数学家张丘建在它所撰定的《算经》中,提出这样一个问题:“鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?”意思是说公鸡每只5元,母鸡每只3元,小鸡3只1元,用100元钱买100只鸡,求公鸡、母鸡、小鸡的只数。试设计算法求解该问题,并分析你所设计的算法的时间复杂度。(要求:算法分别用伪代码和C描述) 例 一 两 个 矩 阵 相 乘 void mult(int a[], int b[], int c[] ) { // 以二维数组存储矩阵元素,c 为 a 和 b 的乘积 for (i=1; i=n; ++i) for (j=1; j=n; ++j) { c[i,j] = 0; for (k=1; k=n; ++k) c[i,j] += a[i,k]*b[k,j]; } //for } //mult 基本操作: 乘法操作 时间复杂度: O(n3) 例 二 选 择 排 序 void select_sort(int a[], int n) { // 将 a 中整数序列重新排列成自小至大有序的整数序列。 } // select_sort 基本操作: 比较(数据元素)操作 时间复杂度: O(n2) j = i; // 选择第 i 个最小元素 for ( k = i+1; k n; ++k ) if (a[k] a[j] ) j = k; for ( i = 0; i n-1; ++i ) { if ( j != i ) a[j] ←→ a[i] } 例 三 起 泡 排 序 void bubble_sort(int a[], int n) { // 将 a 中整数序列重新排列成自小至大有序的整数序列。 for (i=n-1, change=TRUE; i1 change; --i) } // bubble_sort 基本操作: 赋值操作 时间复杂度: O(n2) { change = FALSE; // change 为元素进行交换标志 for (j=0; ji; ++j) if (a[j] a[j+1]) { a[j] ←→ a[j+1]; change = TRUE ;} } // 一趟起泡 * * 在不同的编程环境中, 存储结构可有不同的描述方法。 当用高级程序设计语言进行编程时,通常可用高级编程语言中提供的数据类型描述之。 例如: 以三个带有次序关系的整数表示一个长整数时,可利用 C 语言中提供的整数数组类型。 typedef int Long_int [3] 定义长整数为: 逻辑结构和存储结构之间的关系 数据的逻辑结构属于用户视图,是面向问题的,反映了数据内部的构成方式;数据的存储结构属于具体实现的视图,是面向计算机的。 一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率往往是不同的。 数据的运算(算法) 在数据的逻辑结构上定义的操作算法。 它在数据的存储结构上实现。 最常用的数据运算有5种: 插入、删除、修改、查找、排序 数据的逻辑结构 数据的存储结构 数据的运算:检索、排序、插入、删除、修改等 线性结构 非线性结构 顺序存储 链式存储 线性表 栈 队 树形结构 图形结构 数据结构的三个方面: 数据类型:是一个值的集合和定义在该值上 的一组操作的总称。 抽象数据类型:是用户在数

文档评论(0)

1haodian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档