07 dc3
Transcript of 07 dc3
Divide and Conquer
Analysis of Algorithms
Master Theorem
The solution to the equation T(n) = aT(n/b) + (nk), where a >= 1 and b >1 is
Ө(nlog
b a) if a > bk
T(n) = Ө(nklogn) if a = bk
Ө(nk) if a < bk
Example
Solve the following recurrence using Master Theorem
T(n) = 8T(n/2) + O(n2) a = 8, b = 2, k = 2
a > bk, 8 > 22
)()()( 38lg2 nOnOnT
Matrix Multiplicationprocedure stmul(n,A,B,C)if n>=1
partition A into A11,A12,A21,A22partition B into B11,B12,B21,B22c=AxBstmul(n/2,A11,B11,m1)stmul(n/2,A12,B21,m2)stmul(n/2,A11,B12,m3)stmul(n/2,A12,B22,m4)stmul(n/2,A21,B11,m5)stmul(n/2,A22,B21,m6)stmul(n/2,A21,B12,m7)stmul(n/2,A22,B22,m8)
c11=m1+m2, c12=m5+m6c21=m3+m4, c22=m7+m8Function Calls
m1=A11B11, m2=A12B21, m3=A11B12m4=A12B22, m5=A21B11, m6=A22B21m7=A21B12, m8=A22B22
Analysis, Multiplications
T(n)=8T(n/2)T(n/2)=8T(n/4)T(n/4)=8T(n/8)By backward substitutionT(n)=82T(n/4) =83T(n/8) =8iT(n/2i) =8 iT(n/2i)let 2i=nT(n)=8lgn
=nlg8=n^3
Additions
t(n)=8t(n/2)+4(n/2)2
a=8, b=2, k=2by applying master theoremT(n)= n log
b a
= nlg8=n3 єӨ(n3 )
Strassen’s Multiplication
C11 C12 A11 A12 B11 B12
= *
C21 C22 A21 A22 B21 B22
m1=A11(B12-B22)m2=(A11+A12)B22m3=(A21+A22)B11m4=A22(B21-B11)m5=(A11+A22)(B11+B22)m6=(A12-A22)(B21+B22)m7=(A11-A21)(B11+B12)C11=m5+m4-m2+m6, C21=m3+m4C12=m1+m2 C22=m1+m5-m3-m7
Complexity(multiplication, addition& Subtraction)t(n)=7t(n/2)+kn 2
a=7, b=2, d=2
by applying master theorem
T(n)= n logb a
= nlg7=n2.8 єӨ(n2.8 )