CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
CapÃtulo 3 Complejidad de algoritmos recursivos ⩠⨠⧠= > â = 0 1 0 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Instituto Tecnológico <strong>de</strong> Ciudad Ma<strong>de</strong>ro<br />
Dra. Laura Cruz Reyes<br />
Unidad I COMPLEJIDAD DE ALGORITMOS<br />
Capítulo 3 <strong>Complejidad</strong> <strong>de</strong> <strong>algoritmos</strong> <strong>recursivos</strong><br />
Cuando el arreglo es <strong>de</strong> tamaño mayor <strong>de</strong> n, el número <strong>de</strong> comparaciones se pue<strong>de</strong> <strong>de</strong>rivar<br />
aplicando la fórmula para los <strong>algoritmos</strong> <strong>de</strong> tipo divi<strong>de</strong>-y-venceras.<br />
(<br />
⎢n<br />
⎥)<br />
W( n) = 2 W + ( n−1)<br />
, si n>1<br />
⎣ 2⎦<br />
Comparaciones para or<strong>de</strong>nar por<br />
separado las parte <strong>de</strong>recha e izquierda<br />
que son <strong>de</strong> tamaño ⎣n/2⎦ (b=2, c=2).<br />
Comparaciones para fusionar dos subarreglos<br />
or<strong>de</strong>nados <strong>de</strong> tamaño ⎣n/2⎦. En el peor caso se toma<br />
alternadamente un elemento <strong>de</strong> cada subarreglo,<br />
requiriendose n-1 comparaciones ( f(n) = n-1 ).<br />
Reuniendo en una sola expresión los casos base y recursivo, la complejidad <strong>de</strong>l algoritmo<br />
mergeSort en el peor caso es como sigue.<br />
( )<br />
W n<br />
⎧0 si n = 0<br />
⎪<br />
= ⎨ ⎛⎢n<br />
⎥ ⎞<br />
⎪2 W ⎜⎢ + ( n − 1) si n > 0<br />
2⎥⎟<br />
⎩ ⎝⎣<br />
⎦⎠<br />
3.3.2 Algoritmos basados en recorta-y-vencerás<br />
El problema principal <strong>de</strong> tamaño n se pue<strong>de</strong> recortar a b subproblemas (1