数据结构课件1绪论幻灯片.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
顺序搜索 (Sequenial Search) 行 int seqsearch ( int a[ ], int n, int x ) //a[0],…,a[n-1] 1 { 2 int i = 0; 3 while ( i n a[i] != x ) 4 i++; 5 if ( i == n ) return -1; 6 return i; 7 } 插装time()的计时程序 void TimeSearch ( ) { //在1..1000中搜索0,10,…,90,100,200,…,1000 int a[1001], n[20], j; for ( j=1; j=1000; j++ ) a[j] = j; //a[1]=1, a[2]=2, … for ( j=0; j10; j++ ) { n[j] = 10*j; //n[0]=0, n[1]=10, n[2]=20 n[j+10] = 100*( j+1 ); } //n[10]=100, n[11]=200, n[12]=300 ... printf( n time\n ); for ( j=0; j20; j++ ) { long start, stop, runTime ; int k ; start = time (); k = seqsearch (a, 1001, n[j]); stop = time (); runTime = stop - start; printf( %d %d\n,n[j], runTime ); } printf( Times are in hundredths of a second.\n ); } 算法的效率评价 2.事前分析估算——一个高级语言程序在计算机上运行所消耗的时间取决于: ?依据的算法选用何种策略 ?问题的规模 ?程序语言 ?编译程序产生机器代码质量 ?机器执行指令速度 同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同。———所以使用确定时间单位衡量算法效率不合适 时间复杂度:基本操作重复执行的次数的阶数 T(n)=O(f(n)) c log2n n nlog2n n2 n3 2n 3n n! 例:N*N矩阵相乘 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]=c[i][j]+a[i][k]*b[k][j]; } 事前分析估算 时间复杂度的规则 加法规则 针对并列程序段 T(n, m) = T1 (n) + T2 (m) = O(max (f (n), g (m))) 乘法规则 针对嵌套程序段 T (n, m) = T1 (n) * T2 (m) = O(f (n)*g (m)) 事前分析估算 空间复杂度:s(n)=O(f(n)) 空间复杂度度量 存储空间的固定部分 程序指令代码的空间,常数、简单变量、定长成分(如数组元素、结构成分、对象的数据成员等)变量所占的空间 可变部分 尺寸与实例特性有关的成分变量所占空间、引用变量所占空间、递归栈所用的空间、通过new和delete命令动态使用的空间 小结 数据结构的基本概念和术语:数据、数据元素、数据结构、数据类型 数据结构的三个方面 抽象数据结构类型ADT的表示与实现 算法和算法分析:特性、评价方法(时间/空间复杂度) 联系方式 梁春燕 华电工商管理学院信息管理教研室 办公室:J1-449 电话Email:cyliang@ncepu.edu.cn * 数据类型是与数据结构密切相关的一个概念,见于高级语言、计算机硬件、操作系统和数据库等计算机相关技术中。是对数据独立于实现的抽象。 数据结构 梁春燕 华北电力

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档