网站大量收购独家精品文档,联系QQ:2885784924

算法分析习题课--第4章.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析习题课--第4章资料

P=(A11+A22)(B11+B22) T=(A11+A12)B22 Q=(A21+A22)B11 U=(A21-A11)(B11+B12) R=A11(B12-B22) V=(A12-A22)(B21+B22) S=A22(B21-B11) C12=R+T = A11B12-A11B22 +A11B22+A12B22 = A11B12 +A12B22 C21=Q+S = A21B11+A22B11 +A22B21-A22B11 = A21B11 +A22B21 C22=P+R-Q+U =(A11+A22)(B11+B22)+A11(B12+B22)-(A21+A22)B11 +(A21-A11)(B11+B12) = A11B11+A22B11+A11B22+A22B22+ A11B12-A11B22- A21B11-A22B11 +A21B11 +A21B12-A11B11-A11B12 =A22B22+A21B12 P=(A11+A22)(B11+B22) T=(A11+A12)B22 Q=(A21+A22)B11 U=(A21-A11)(B11+B12) R=A11(B12-B22) V=(A12-A22)(B21+B22) S=A22(B21-B11) 算法分析习题课 第4章 作业 第四章:2 、3、 5、 6、10、11、23 P99 4.2 解题思路 猜想T(n)是多少? 从特殊情况入手,使用试探或蛮力法解开方程 题目给出的是 O()表示的界,结论也应该是类似的界 证明猜想 蛮力法 设n=2k则: T(n)=T(2k)=2T(2k-1)+f(2k) =2(2 T(2k-2)+f(2k-1)) +f(2k) =22T(2k-2)+21 f(2k-1)+ f(2k) = ………… =2kT(1)+2k-1f(2)+2k-2f(22)+…+20f(2k) =2kg(n)+ 2k-1f(2)+2k-2f(22)+…+20f(2k) g(n)=O(1)和f(n)=O(n) 当g(n)=O(1)和f(n)=O(n)时 不妨设g(n)=a,f(n)=bn+c,则: T(n)=T(2k) = 2ka+ 2k-1*2b+2k-2*22b+…+20*2kb + c*(2k-1+2k-2+…+20) =2ka+kb2k +(2k-1)c =(a+c)n – c + bnlog2n = O(nlog2n) 证明T(n)= O(nlogn) n足够小时,T(n)=g(n)=O(1)=O(nlogn) 显然成立 假设nk时命题成立,则当n=k时 由归纳假设,T(n/2) = O( (n/2) * log(n/2) ),即 存在正整数c1、n1,当 n/2 =n1时, T(n/2) =c1*(n/2) * log(n/2)(c1*nlogn)/2 由f(n) = O(n),存在正整数c2、n2,当n=n2 f(n) = c2 * n T(n) = 2T(n/2) + f(n) =c1*nlogn+c2*n=(c1+c2)*nlogn = c*nlogn 猜想也可以运用技巧 T(1) = 1 T(n) = 2*T(n/2) + n T(n)/n = T(n/2)/(n/2) +1 n=2K T(n)/n = k T(n) = nlogn g(n)=O(1)和f(n)=O(1) 当g(n)=O(1)和f(n)=O(1)时, 不妨设g(n)=c,f(n)=d,则: T(n)=T(2k) =c2k+2k-1d+2k-2d+…+20d =c2k+d(2k-1) =(c+d) n-d=O(n) 证明T(n)= O(n) n足够小时,T(n)=g(n)=O(1)=O(n) 显然成立 假设nk时命题成立,则当n=k时 由归纳假设,T(n/2) = O( (n/2)),即 存在正整数c1、n1,当 n/2 =n1时, T(n/2) =c1*(n/2) 由f(n) = O(1),存在正整数c2、n2,当n=n2 f(n) = c2 T(n) = 2T(n/2) + f(n) =c1*n+c2 =O(n) P99-3 根据4.2节开始所给出的二分检索策略,写一个二分检索的递归过程。 Procedure BINSRCH(A, low, high, x, j) integer mid; if (low high) then j←0; return; endif mid← ?(low+high)/2 ? if x=A(mid) then j←mid; endif //

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档