数据结构(朱战立 C++语言描述)第01章.ppt

数据结构(朱战立 C++语言描述)第01章.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学学院 授课教师:袁宇丽 Email:yuanyuli@yeah.net Tel前言:关于学习数据结构 数据结构的产生 数据结构课程地位 数据结构课程学习特点 本课程课时安排 数据结构课程地位 数据结构与其它课程关系图: 数据结构课程学习特点 教学目标: 学会分析数据对象的特征,掌握数据组织方法和计算机的表示方法,以便为应用所涉及数据选择适当的逻辑结构、存储结构及相应算法,初步掌握算法时间空间分析的技巧,培养良好的程序设计技能。 学习方法: 学习数据结构,必须经过大量的实践,在实践中体会构造性思维方法,掌握数据组织与程序设计的技术。 本课程的教学目标 第1章 绪论 1.1 数据结构的基本概念 1.2 抽象数据类型和软件构造方法 1.3 算法及其时间复杂度 1.4 算法的书写规范 程序运行消耗时间的有关因素: (1)书写算法的程序设计语言 (2)编译产生的机器语言代码质量 (3)机器执行指令的速度 (4)问题的规模,即算法的时间效率与算法所处理的数据个数n的函数关系。 算法的时间效率是算法所处理的数据个数n的函数,算法的时间效率也称作算法的时间复杂度。 定义:T(n)=O(f(n)),当且仅当存在正常数c和n0,对所有的n(n≥ n0)满足T(n)≤c×f(n) 。 例1-3 设数组a和b在前边部分已赋值,求如下两个n阶矩阵相乘运算算法的时间复杂度。 for(i=0;in;i++) for(j=0;jn;j++) { c[i][j]=0; //基本语句1 for(k=0;kn;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; //基本语句2 } 解:设基本语句的执行次数为f(n),有f(n)=c1×n2+ c2×n3,因 T(n)= f(n)=c1×n2+ c2×n3≤c × n3,其中c1 , c2 , c均为常数,所以该算法的时间复杂度为T(n)=O(n3) 例1-4 设n为如下算法处理的数据个数,求如下算法的时间复杂度。 for(i=1;i=n;i=2*i) couti=i; 解:设基本语句的执行次数为f(n),有2f(n) ≤ n,即有 f(n) ≤lb n。 因T(n)= f(n) ≤lb n ≤c × lb n,所以该算法的时间复杂度为 T(n)=O(lb n)。 例1-5:下边的算法是用冒泡排序法对数字a中的n个整数类型的数据元素(a[0]~a[n-1]),从小到大进行排序,求该算法的时间复杂度。 void BubbleSort(int a[],int n) { int i,j,flag=1; int temp; for(i=1;inflag==1;i++) { flag=0; for(j=0;jn-i;j++) { if(a[j]a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } 解:设基本语句的执行次数为f(n),最坏情况下有 f(n)≈n+4*n2/2 因T(n)=f(n) ≈n+2* n2 ≤c* n2,其中c为常数,所以该算法的时间复杂度为T(n)=O(n2)。 算法的时间复杂度是衡量一个算法好坏的重要指标。一般来说,具有多项式时间复杂度的算法,是可接受、可实际使用的算法;具有指数时间复杂度的算法,是只有当n足够小时才可使用的算法。 例1-6 下面的算法是在一个有n个数据元素的数组a中删除第i个位置的数组元素,要求当删除成功时数组元素个数减1,求该算法的时间复杂度。其中数组下标从0至n-1。 int Delete(int a[],int n,int i) { int j; if(i0||i=n) return 0; //删除位置错误,失败返回 for(j=i+1;jn;j++) a[j-1]=a[j]; //顺次移位填补 n--; //数组元素个数减1 return

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档