- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课件(c语言版)d第一讲
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例 二 选 择 排 序 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 ;} } // 一趟起泡 四、算法的存储空间需求 算法的空间复杂度定义为: 表示随着问题规模 n 的增大, 算法运行所需存储量的增长率 与 g(n) 的增长率相同。 S(n) = O(g(n)) 算法的存储量包括: 1.输入数据所占空间 2.程序本身所占空间 3.辅助变量所占空间 若输入数据所占空间只取决于问题 本身,和算法无关,则只需要分析除 输入和程序之外的辅助变量所占额外 空间。 若所需额外空间相对于输入数据量 来说是常数,则称此算法为原地工作。 若所需存储量依赖于特定的输入, 则通常按最坏情况考虑。 * * * * * * * * * * * * * * * * * * * * * * 上述对数据结构的定义还只是数学上的抽象概念,并没有涉及计算机,完整的数据结构定义还应该包括它在计算机中的表示-即数据的存储结构。 * * * * 数据类型 是一个 值的集合 和定义在此集合上的 一组操作 的总称。 不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。 三、抽象数据类型 (Abstract Data Type 简称ADT) 是指一个数学模型以及定义在此数学模型上的一组操作。 例如,抽象数据类型复数的定义: 数据对象: D={e1,e2|e1,e2∈RealSet } 数据关系: R1={e1,e2 | e1是复数的实数部分 | e2 是复数的虚数部分 } ADT Complex { 基本操作: AssignComplex( Z, v1, v2 ) 操作结果:构造复数 Z,其实部和虚部 分别被赋以参数 v1 和 v2 的值。 DestroyComplex( Z) 操作结果:复数Z被销毁。 GetReal( Z, realPart ) 初始条件:复数已存在。 操作结果:用realPart返回复数Z的实部值。 GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。 Add( z1,z2, sum ) 初始条件:z1, z2是复数。 操作结果:用sum返回两个复数z1, z2 的 和值。 } ADT Complex 假设:z1和z2是上述定义的复数 则 Add(z1, z2, z3) 操作的结果 z3 = z1 + z2 即为用户企求的结果 抽象数据类型的描述方法 抽象数据类型可用(D,S,P)三元组表示。 其中:D 是数据对象; S 是 D 上的关系集; P 是对 D 的基本操作集。 ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表)
文档评论(0)