数据结构习题课1解读.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文档。上传文档
查看更多
感谢二班、三班的学委把作业按学号排序。这是一种积极的习惯。 1-2 设数据的逻辑结构为L=(N,R),其中, N={a,b,c,d,e} R={r}, r={a,b,a,c,a,e,b,d,c,e,d,e} 请画出对应的逻辑结构,说明是何种结构 参考答案 图型结构:a有多个后继,e有多个前驱 作业情况 正确率:超过80% 用圆圈表示结点,用直线箭头表示边 结点名一般写在圆圈内 有问题的画法 无向边 边共用线 交叉:尽量避免 作业1-4 题目描述:【3】【10分钟】用反证法证明 是无理数。 参考答案 假设 不是无理数,那么 一定是有理数,即存在p、q,使得 =p/q,p、q互质。整理得p2=2*q2 ,因此p是偶数。设p=2*k,则有q2=2*k2 ,因此q也是偶数。这与p、q互质矛盾。 因此 是无理数。 其它做法 有一种证法:p、q互质得到p2 、 q2互质。 由p2=2*q2 ,可得p2 、 q2有公约数q2 。(需要说明q不是1) 唯一分解定理:2班李百林 三种证法的同学:3班徐文峰(几何法)。 作业情况 正确率70%左右 有问题的说法 因为 不是有理数或找不到分数、循环小数表示 因为 是无理数? (p,q)=2:改成p、q有公约数2 表示成p/q,p、q互为质数,q1或q0等等 作业情况 正确率不到50% 有问题的做法 特殊情况没有处理:1和2. 不理解程序语句? For处理:IF(n%i==0) THEN flag ←0. ELSE flag ←1. 无返回值: RETURN. FOR i=2 TO in DO IF …… DO 1-6 分析下面程序段的时间复杂性 int s=0,i,j,k; for(i=0;i=n;i++) for(j=0;j=i;j++) for(k=0;kj;k++) s++; 参考答案 以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) 作业情况 正确率约60% 有分析步骤 直接给结果 有问题的做法 三重循环,所以O(n3) 推导出错 1-9 将下列算法时间复杂性O(n),O(2n),O(log2n),O(nlog2n),O(n5), O(n2+1),O(n3-n2) 按由低到高的顺序排列。其中,n是输入数据的规模。 参考答案 O(log2n) O(n) O(nlog2n) O(n2+1) O(n3-n2) O(n5) O(2n) 这种表达不严格,因为O表示上界。要把O理解为最接近的上界,即同阶,也就是书上的Θ 作业情况 正确率约 90% 由高到低排列也算是对的 不写O也算是对的 讨论n=1或n较小的情况也算是对的 有问题的做法 n 和 nlogn 弄反 2n和n5、n3-n2弄反 考察知识点 数学归纳法证明 归纳基础 n = ? 时,***,命题成立。 归纳假设步骤 假设n=k是,有***, 当n=k+1时,推出命题也成立 用数学归纳法证明 第一数学归纳法 (假设n=k,往推n=k+1) 第二数学归纳法(假设n=k,往推n=k+1,强数学归纳法) 两者等价 1-12 给出算法BS的非递归算法,并说明算法最多需要多大的辅助空间。 ELSE( mid ←(L+R) div 2. p ?(mid+1,R,B). p ?(L,mid,R). )) B3[结果] (s,e,e,fmax,fmin)? t .▌ 参考答案 辅助空间 问题分解栈P: ( log2n + 1) *2 问题合并栈T: 2*4 void bs(int a[],int s,int e,int fmin,int fmax) /* 使用倍增法,求最大最小*/ { int len=1; while(s+len=e) { for(i=s;i+2*len-1=e;i+=2*len) { if(a[i]a[i+len]) swap(a[i],a[i+len]); if(a[i+len-1]a[i+2*len-1]) swap(a[i+len-1],a[i+2*le

文档评论(0)

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

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

1亿VIP精品文档

相关文档