Question

J'ai une fonction $ f (m, n) $ avec complexité de temps $ t (m, n) $ $ caractérisé par la relation récurrence

$$ \ Begin {Align} T (m, \ n) &= 2t \ bigl (\ frac {m} {2}, \ frac {n} {2} \ bigr) + c_0 \ journal n + c_1. \\ T (m, \ 1) &= t \ bigl (\ frac {m} {2}, 1 \ bigr) + c_1 \\ T (0, \ n) &= 1 \\ T (m, \ 0) &= 1 \ fin {align} $$

Je peux voir que pour fixer $ m $ , c'est $ o (n) $ ,et pour fixe $ n $ , c'est $ o (m) $ .Mais je ne vois pas comment je peux obtenir une expression qui caractérise les performances en termes de variable $ m $ et $ n$ .

Comment puis-je résoudre ce problème pour trouver la complexité asymptotique en termes de $ m $ et $ n $ ?

Était-ce utile?

La solution

Supposons pour la simplicité que $ m= 2 ^ a $ , $ n= 2 ^ b $ , $ C_0= 1 $ , $ c_1= 0 $ et les cas de base sont $ T (1, \ CDOT)= T (\ CDOT, 1)= 0 $ . Puis $$ T (2 ^ a, 2 ^ b)= 2T (2 ^ {A-1}, 2 ^ {b-1}) + b= 4t (2 ^ {A-2}, 2 ^ {B-2}) + B + 2 (B-1)=CDOT $$ Le nombre d'assemblins est $ C=min (a, b) $ et en utilisant cette notation que nous obtenons \ commence {align} T (2 ^ a, 2 ^ B) &= B + 2 (B-1) + 4 (B-2) + \ CDOTS + 2 ^ {C-1} (B-C + 1) \\ &= (1 + 2 + \ CDOT + 2 ^ {C-1}) B - 2 ^ 1 (1) - 2 ^ 2 (2) - \ CDOT - 2 ^ {C-1} (C-1) \\ & Englisons (2 ^ C-1) B - 2 ^ C C + 2 (2 ^ C-1) \\ &= 2 ^ C (B + 2-C) - (B + 2). \ fin {align} Autrement dit, $$ T (2 ^ a, 2 ^ b)= \ commencer {cas} 2 ^ {b + 1} - (B + 2) & \ Text {si} a \ geq b, \\ (B + 2) (2 ^ A-1) - A2 ^ A & \ Text {si} b \ geq a. \ fin {cas} $$ Quand $ m \ geq n $ , cela donne $ t (m, n)=theta (n) $ , et quand $ n> m $ , nous obtenons $ t (m, n)=theta (m \ journal (n / m) + m) $ .

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top