1. MERGERSORT -
ORDENAMIENTO POR MEZCLA
Estructura de Datos VI
Alvaro Daniel Silva Gutierrez
Fundación Universitaria San Mateo
Desarrollo de Software VI
2013
2. QUE ES?
Se puede decir que es la técnica de divide y
vencerás.
Básica lo que hace es dividir el arreglo y cada
división la ordena de forma separa y luego las une
para entregar el arreglo ordenado.
3. DIVIDE Y ORDENA
Arreglo Original
Se divide en dos partes
iguales
Y cada una de las
partes
se divide en dos
partes iguales.
Y cada una
de la partes
Se ordena
por
separado,
Al final se
unen para
dar el
Resultado.
4. ESTE ALGORITMO SE DIVIDE EN DOS
Dividir en partes iguales Mezclar Elemento
public static void mergesort(int[ ] matrix,
int init, int n)
{
int n1;
int n2;
if (n > 1)
{
n1 = n / 2;
n2 = n - n1;
mergesort(matrix, init, n1);
mergesort(matrix, init + n1, n2);
merge(matrix, init, n1, n2);
}
}
private static void merge(int[ ] matrix, int init, int n1,
int n2)
{
int[ ] buffer = new int[n1+n2];
int temp = 0;
int temp1 = 0;
int temp2 = 0;
int i;
while ((temp1 < n1) && (temp2 < n2))
{
if (matrix[init + temp1] < matrix[init + n1 + temp2])
buffer[temp++] = matrix[init + (temp1++)];
else
buffer[temp++] = matrix[init + n1 + (temp2++)];
}
while (temp1 < n1)
buffer[temp++] = matrix[init + (temp1++)];
while (temp2 < n2)
buffer[temp++] = matrix[init + n1 + (temp2++)];
for (i = 0; i < n1+n2; i++)
matrix[init + i] = buffer[i];
}
5. RESUMEN
El funcionamiento por pasos es.
1. Si la longitud de la lista es 0 ó 1, ya esta ordenada.
2. Dividir la lista desordenada en dos listas iguales.
3. Se aplica el método mergersort a cada sub-lista
4. Mezcla cada grupo de forma ordenada hasta obtener
una sola lista ordenada.
Las ideas principales del MERGERSORT son:
1. Una lista pequeña necesitará menos pasos para
ordenarse que una lista grande.
2. Se necesitan menos pasos para construir una lista
ordenada a partir de dos listas también ordenadas,
que a partir de dos listas desordenadas. Por ejemplo,
sólo será necesario entrelazar cada lista una vez que
están ordenadas
6. INFOGRAFIA
WikiSpace Universidad Piloto de Colombia
http://estructuras-de-
datos.wikispaces.com/Ordenamiento+por+Mezcla
Vogella.com
http://www.vogella.com/articles/JavaAlgorithmsMer
gesort/article.html
Wikipedia.com
http://es.wikipedia.org/wiki/Ordenamiento_por_mez
cla
7. INFOGRAFIA
WikiSpace Universidad Piloto de Colombia
http://estructuras-de-
datos.wikispaces.com/Ordenamiento+por+Mezcla
Vogella.com
http://www.vogella.com/articles/JavaAlgorithmsMer
gesort/article.html
Wikipedia.com
http://es.wikipedia.org/wiki/Ordenamiento_por_mez
cla