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

review-divide 算法导论教学文稿.ppt

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

1 Framework for describing algorithms Correctness of algorithms Efficiency of algorithms Divide and Conquer Asymptotic analysis of function(渐近分析) Recurrences Reviews from chap1 to chap4 2 Examples: Merge sort Quick sort Multiplication of two integers Multiplication of two matrices Finding Minimum and Maximum Majority problem (多数问题) Reviews from chap1 to chap4 3 Exam0 Merge Sort See part2-chap2 …… 4 Exam1 Quick Sort See chap7 …… 5 Multiplication of two integers (整数相乘问题) X和Y是两个n位的十进制整数,分别表示为 X=xn-1xn-2...x0, Y=yn-1yn-2...y0,其中0 ≤ xi, yj ≤ 9 (i, j=0,1,…n-1) ,设计一个算法求X×Y,并分析其计算复杂度。说明:算法中“基本操作”约定为两个个位整数相乘xi×yj,以及两个整数相加。 Exam2 Multiplication of two integers(整数相乘) 8 Exam2 Multiplication of two numbers(整数相乘) two n-digit numbers X and Y, Complexity(X × Y) = ? Divide and Conquer algorithm Let X = a b , Y = c d then XY = (10ma+b)(10mc+d) = 102mac+10m(bc+ad)+bd Multiply(X; Y; n): if n = 1 return XY else m = n/2 a = X/10m; b=X mod 10m c = Y/10m; d=Y mod 10m e = Multiply(a; c; m) f = Multiply(b; d; m) g = Multiply(b; c; m) h = Multiply(a; d; m) return 102me + 10m(g + h) + f Complexity analysis: T(1)=1, T(n)=4T(n/2)+O(n). Applying Master Theorem, we have T(n)= O(n2). 9 Exam2 Multiplication of two integers(整数相乘) two n-digit numbers X and Y, Complexity(X × Y) = ? Divide and Conquer (Karatsuba’s algorithm) Let X = a b , Y = c d then XY = (10ma+b)(10mc+d) = 102mac+10m(bc+ad)+bd Note that bc + ad = ac + bd  (a  b)(c  d). So, we have FastMultiply(X; Y; n): if n = 1 return XY else m = n/2 a = X/10m; b=X mod 10m c = Y/10m; d=Y mod 10m e = FastMultiply(a; c; m) f = FastMultiply(b; d; m) g = FastMultiply(ab; cd; m) return 102me + 10m(e + f  g ) + f Complexity analysis: T(1)=1, T(n)=3T(n/2)+O(n). Applying Master Theorem, we have 10 Multiplication of two matrices (矩阵相乘问题) A和B是两个n阶实方阵,表示为 , 设计一个算法求A×B,并分析计算复杂度。 说明:算法中“基本操作”约定为两个实数相乘,或两个实数相加。 Exam3

文档评论(0)

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

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

1亿VIP精品文档

相关文档