20.03.2015 Views

Tabla de Contenidos

Tabla de Contenidos

Tabla de Contenidos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3. QUICKSORT 31<br />

Figura 2.5: Árbol <strong>de</strong> recursión para Quick-Sort en el caso <strong>de</strong> una partición <strong>de</strong>sbalanceada.<br />

en (2.4) obtenemos<br />

T(n) = T(1) + T(n − 1) + c · n<br />

<strong>de</strong> don<strong>de</strong> resolviendo obtenemos<br />

T(n) = c + T(n − 1) + c · n<br />

= 2c + T(n − 2) + c · (n − 1) + c · n<br />

= 3c + T(n − 3) + c · (n − 2) + c · (n − 1) + c · n<br />

.<br />

= c · (n − 1) + T(1) + c · 2 + · · · + c · (n − 1) + c · n<br />

= c · (n − 1) + c · ∑n<br />

i=1 i<br />

por lo que T(n) es Θ(n 2 ), o sea, en el caso <strong>de</strong> que la partición produzca siempre una región <strong>de</strong><br />

largo 1 y otra <strong>de</strong> largo n − 1, Quick-Sort se comporta asintóticamente como el pero caso <strong>de</strong><br />

Insert-Sort y Select-Sort. El árbol <strong>de</strong> recursión para este caso se muestra en la figura 2.5. Se<br />

pue<strong>de</strong> <strong>de</strong>mostrar, no lo haremos aquí, que este es el peor comportamiento posible para Quick-Sort.<br />

Un punto interesante <strong>de</strong> observar es que este patrón <strong>de</strong> particiones se obtienen cuando el arreglo <strong>de</strong><br />

entrada se encuentra ya or<strong>de</strong>nado.<br />

Supongamos ahora que la partición se produce <strong>de</strong> manera tal que siempre <strong>de</strong>ja regiones <strong>de</strong>l mismo<br />

largo, o sea, dos regiones <strong>de</strong> largo n 2<br />

. Reemplazando en (2.4) obtenemos<br />

( n<br />

) ( n<br />

) ( n<br />

)<br />

T(n) = T + T + c · n = 2T + c · n<br />

2 2 2<br />

que es igual a la ecuación (2.1), por lo que T(n) es Θ(nlog n) en este caso. El árbol <strong>de</strong> recursión es<br />

el mismo que aparece en la figura 2.3.<br />

Hemos visto un caso malo y uno bueno (comparativamente con los anteriores algoritmos estudiados).<br />

¿Cómo po<strong>de</strong>mos analizar un caso promedio <strong>de</strong> Quick-Sort? Una posibilidad es pensar que<br />

las particiones se generan siempre con cierta proporción no balanceada que esté entre el caso 1 vs<br />

n − 1 y el caso n 2 vs n 2<br />

. Por ejemplo, supongamos que la partición siempre genera regiones <strong>de</strong> largo

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!