- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 XY
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 XY
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(ab; cd; 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)