SlideShare a Scribd company logo
1 of 8
MERGERSORT -
ORDENAMIENTO POR MEZCLA
Estructura de Datos VI
Alvaro Daniel Silva Gutierrez
Fundación Universitaria San Mateo
Desarrollo de Software VI
2013
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.
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.
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];
}
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
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
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
MERGERSORT
GRACIAS

More Related Content

Viewers also liked

Viewers also liked (9)

Adiministración de sep presentaciones
Adiministración de sep presentacionesAdiministración de sep presentaciones
Adiministración de sep presentaciones
 
Etika kep last meeting
Etika kep last meetingEtika kep last meeting
Etika kep last meeting
 
Audio digital
Audio digitalAudio digital
Audio digital
 
El santo rosario(realizado por perozomariale@gmail.com)
El santo rosario(realizado por perozomariale@gmail.com)El santo rosario(realizado por perozomariale@gmail.com)
El santo rosario(realizado por perozomariale@gmail.com)
 
Cronograma de jornadas de participación ciudadana rural. Mayo 2013.
Cronograma de jornadas de participación ciudadana rural. Mayo 2013.Cronograma de jornadas de participación ciudadana rural. Mayo 2013.
Cronograma de jornadas de participación ciudadana rural. Mayo 2013.
 
Sistemas multi-estados presentar
Sistemas multi-estados presentarSistemas multi-estados presentar
Sistemas multi-estados presentar
 
Discourse annotation
Discourse annotationDiscourse annotation
Discourse annotation
 
Fichas de sampieri
Fichas de sampieriFichas de sampieri
Fichas de sampieri
 
Electrical symbols
Electrical symbols Electrical symbols
Electrical symbols
 

Similar to Mergersort

Similar to Mergersort (10)

Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
S3-SCBC.pptx
S3-SCBC.pptxS3-SCBC.pptx
S3-SCBC.pptx
 
UNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busquedaUNIDAD IV - metodos de busqueda
UNIDAD IV - metodos de busqueda
 
metodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdfmetodos-de-ordenamiento.pdf
metodos-de-ordenamiento.pdf
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
 
Ordenamiento Simple
Ordenamiento SimpleOrdenamiento Simple
Ordenamiento Simple
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Josemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodosJosemanueunidad4 investigacionmetodos
Josemanueunidad4 investigacionmetodos
 

Mergersort

  • 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