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.1. ALGORITMOS SIMPLES DE ORDENACIÓN 23<br />

Figura 2.2: Ejemplo <strong>de</strong> ejecución <strong>de</strong> Select-Sort<br />

Or<strong>de</strong>nación por Selección<br />

El algoritmo <strong>de</strong> or<strong>de</strong>nación por selección utiliza la siguiente estrategia: Mantiene la parte inicial<br />

<strong>de</strong>l arreglo or<strong>de</strong>nada, digamos los valores A[0..j] y en la siguiente iteración selecciona el menor <strong>de</strong><br />

los valores en A[j + 1..n − 1] y lo intercambia con A[j]:<br />

Select-Sort(A)<br />

for j := 0 to n − 2<br />

do k := j<br />

for i := j + 1 to n − 1 ✄ Después <strong>de</strong> este ciclo<br />

do if A[i] < A[k] ✄ k es el índice <strong>de</strong>l menor<br />

then k := i ✄ elemento <strong>de</strong> A[j + 1..n − 1].<br />

intercambia(A[j],A[k])<br />

La figura 2.2 muestra una ejecución <strong>de</strong> ejemplo <strong>de</strong> este algoritmo para un arreglo en particular. Al<br />

igual que Insert-Sort, en el peor caso Select-Sort toma tiempo O(n 2 ). Una diferencia importante<br />

es que Select-Sort no distingue entre casos favorables, para cualquier arreglo la cantidad <strong>de</strong> tiempo<br />

que le toma es O(n 2 ). Ahora, si se quiere obtener un dato exacto, por ejemplo acerca <strong>de</strong>l número <strong>de</strong><br />

comparaciones o asignaciones, Select-Sort sí hace diferencias <strong>de</strong>pendiendo <strong>de</strong> cómo se encuentren<br />

inicialmente los datos.<br />

Or<strong>de</strong>nación por Mezcla<br />

La or<strong>de</strong>nación por mezcla se basa en la estrategia dividir para conquistar. Primero divi<strong>de</strong> el arreglo<br />

A en dos, or<strong>de</strong>na recursivamente cada uno <strong>de</strong> las partes <strong>de</strong> A y luego las mezcla. El procedimiento<br />

<strong>de</strong>be entonces recibir el arreglo y un par <strong>de</strong> índices que <strong>de</strong>limitan los bor<strong>de</strong>s <strong>de</strong> la or<strong>de</strong>nación. Con<br />

estas consi<strong>de</strong>raciones el código resulta:

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

Saved successfully!

Ooh no, something went wrong!