数据结构习题课PPT_第1页
数据结构习题课PPT_第2页
数据结构习题课PPT_第3页
数据结构习题课PPT_第4页
数据结构习题课PPT_第5页
已阅读5页,还剩31页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构习题 第 1 章,吉林大学计算机科学与技术学院 谷方明,1,感谢二班、三班的学委把作业按学号排序。这是一种积极的习惯。,2,课堂练习,求下述计算f=1!+2!+3!+n!的算法的时间复杂性 void factorsum(int n) int i, j; int f, w; f=0; for (i=1;i=n; i+) w=1; for (j=1;j=i;j+) w=w*j; f=f+w; return; ,3,参考答案,以乘法为基本运算 最坏时间复杂度为T(n)=n(n+1)/2, 渐近表示法O(n2) (或算法是n2 阶的),4,1-2,设数据的逻辑结构为L=(N,R),其中, N=

2、a,b,c,d,e R=r, r=, 请画出对应的逻辑结构,说明是何种结构,5,图型结构:a有多个后继,e有多个前驱,参考答案,a,e,d,b,c,6,作业情况,正确率:超过80% 用圆圈表示结点,用直线箭头表示边 结点名一般写在圆圈内 有问题的画法 无向边 边共用线 交叉:尽量避免,7,作业14,题目描述:【3】【10分钟】用反证法证明 是无理数。,8,参考答案,假设 不是无理数,那么 一定是有理数,即存在p、q,使得 =p/q,p、q互质。整理得p2=2*q2 ,因此p是偶数。设p=2*k,则有q2=2*k2 ,因此q也是偶数。这与p、q互质矛盾。 因此 是无理数。,9,其它做法,有一种证

3、法:p、q互质得到p2 、 q2互质。 由p2=2*q2 ,可得p2 、 q2有公约数q2 。(需要说明q不是1) 唯一分解定理:2班李百林 三种证法的同学:3班徐文峰(几何法)。,10,作业情况,正确率70%左右 有问题的说法 因为 不是有理数或找不到分数、循环小数表示 因为 是无理数? (p,q)=2:改成p、q有公约数2 表示成p/q,p、q互为质数,q1或q0等等,11,作业15,题目描述 试用ADL语言编写一个算法,判断任一整数 n 是否为素数,12,考察知识点,用ADL描述算法 特殊情况判断 初始化 核心处理步骤 后处理 算法的正确性 证明很难,但验证较容易。用边界条件和特殊数据验

4、证,人工模拟算法执行。 分析算法的效率,13,参考答案1,算法 S (n. flag) /*判断整数n是否为素数,将结果保存到变量flag*/ S1n1? IF (n1) THEN (flagfalse. RETURN.) S2初始化 i2. flagtrue. S3求余判断 WHILE (in-1) DO (IF (n MOD i)=0 THEN (flagfalse. RETURN.) ii+1.) ,14,参考答案2,算法 S (n. flag) /*判断整数n是否为素数,将结果保存到变量flag*/ S1n1? IF (n1) THEN (flagfalse. RETURN.) S2初

5、始化 i2. flagtrue. S3求余判断 WHILE (i n DIV 2 ) DO (IF (n MOD i)=0 THEN (flagfalse. RETURN.) ii+1.) ,15,参考答案3,算法 S (n. flag) /*判断整数n是否为素数,将结果保存到变量flag*/ S1n1? IF (n1) THEN (flagfalse. RETURN.) S2初始化 i2. flagtrue. S3求余判断 WHILE (i n 1/2 ) DO (IF (n MOD i)=0 THEN (flagfalse. RETURN.) ii+1.) ,16,作业情况,正确率不到50

6、% 有问题的做法 特殊情况没有处理:1和2. 不理解程序语句? For处理:IF(n%i=0) THEN flag 0. ELSE flag 1. 无返回值: RETURN. FOR TO DO IF DO,17,用ADL描述算法,输入输出参数的确定:临时变量不是参数 符号“.”的应用 分隔输入输出参数 一条语句的结束;能判断语句结束的问题可略去 符号“ ”的应用:标志算法结束 混杂C+语言 FOR i=2 TO n-1 STEP i+ DO 步骤说明有且精,18,1-6,分析下面程序段的时间复杂性 int s=0,i,j,k; for(i=0;i=n;i+) for(j=0;j=i;j+)

7、for(k=0;kj;k+) s+;,19,参考答案,以s+为基本运算 对每个i,分析(j,k)两重循环的次数 j=0 循环次数为 0 j=1 循环次数为 1 j=i 循环次数为 i 因此对每个i,(j,k)二重循环的次数为i*(i+1)/2 总循环次数为sigma(i*(i+1)/2) i=0.n T(n)=n*(n+1)*(n+2)/6,算法的阶为O(n3),20,作业情况,正确率约60% 有分析步骤 直接给结果 有问题的做法 三重循环,所以O(n3) 推导出错,21,1-9,将下列算法时间复杂性O(n),O(2n),O(log2n),O(nlog2n),O(n5), O(n2+1),O(

8、n3-n2) 按由低到高的顺序排列。其中,n是输入数据的规模。,22,参考答案,O(log2n) O(n) O(nlog2n) O(n2+1) O(n3-n2) O(n5) O(2n) 这种表达不严格,因为O表示上界。要把O理解为最接近的上界,即同阶,也就是书上的,23,作业情况,正确率约 90% 由高到低排列也算是对的 不写O也算是对的 讨论n=1或n较小的情况也算是对的 有问题的做法 n 和 nlogn 弄反 2n和n5、n3-n2弄反,24,作业111,题目描述 证明对正整数n3,算法BS的元素比较次数T(n)5n/3-2。 已知信息 T(n)= 0 n=1 1 n=2 T( n/2)+

9、T(n/2 )+2 n2,25,算法 SM 的改进算法 BS 算法BS(A , i , j . fmax , fmin) /* 在数组 A 的第 i 至第 j 个元素间寻找最大和最小 元素,已知 i j; 假定A 中元素互异 */ BS1. 递归出口 IF i j THEN (fmax fmin Ai. RETURN.) IF i j 1 THEN (IF Ai Aj THEN(fmax Aj. fmin Ai). ELSE (fmax Ai. fmin Aj). RETURN). BS2. 取中值 mid (ij)/2 BS3. 递归调用 BS (A, i, mid. gmax, gmin)

10、. BS (A, mid1, j. hmax, hmin). BS4. 合并 fmax maxgmax, hmax. fmin mingmin, hmin.,26,考察知识点,数学归纳法证明 归纳基础 n = ? 时,*,命题成立。 归纳假设步骤 假设n=k是,有*, 当n=k+1时,推出命题也成立 用数学归纳法证明 第一数学归纳法 (假设n=k,往推n=k+1) 第二数学归纳法(假设n=k,往推n=k+1,强数学归纳法) 两者等价,27,本题的数学归纳法证明思路 证明 n=3 时成立 假设 n =k 时都成立,证明 n= k+1时也成立 思路可以不写出来,28,参考答案,n=3 时, T(3

11、)=T(1)+T(2)+2=3,5*3/3-2=3,命题成立。 假设n , 即k 所以有T( )5*( )/3-2, T( )5*( )/3-2 成立, .(2) 又知 k+1= + , (3) 由(1)(2)(3), T(k+1)=T( )+T( )+2, 5* /3-25* /3-2+2 = 5*( + )/3-2 = 5*(k+1)/3-2 综上,命题得证。,29,作业情况,正确率约50% 由3=n=k,往推n=2*k,n=2*k+1也正确 分n=2*k,n=2*k+1讨论 k+1 = 有问题的做法 弱假设:设n=k时成立 设n=k时成立,即 T(k)=5*k/3-2 利用(3*n/2 -2 )结论 由(1)、(2)、(3)直接得到,不用数学归纳法 经分析得,T(n)=logn 往年:通过观察可知 T(n+1)=T(n)+1 ?,30,1-12,给出算法BS的非递归算法,并说明算法最多需要多大的辅助空间。,31,算法 BS (A,s,e. fmax,fmin ) /*求数组A的s到e中的元素的最大最小值,用栈去递归,确保sfn) THEN mi fm. ) t (l,r,ma,mi) . ),32,ELSE( mid (L+R) div 2. p (mid+1,R,B). p (L,mid,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论