SlideShare una empresa de Scribd logo
2
Lo más leído
3
Lo más leído
4
Lo más leído
Ordenamiento por mezcla
     (merge-sort)
Merge-sort
• Conceptualmente, el ordenamiento por mezcla funciona de la siguiente
  manera:
    – Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. En otro caso:
    – Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del
      tamaño.
    – Ordenar cada sublista recursivamente aplicando el ordenamiento por mezcla.
    – Mezclar las dos sublistas en una sola lista ordenada.
• El ordenamiento por mezcla incorpora dos ideas principales para mejorar
  su tiempo de ejecución:
    – Una lista pequeña necesitará menos pasos para ordenarse que una lista
      grande.
    – 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.
Proceso Principal
• Proceso principal
•      Escribir "Ingrese el tamano del vector";
•      Leer num;
•      dimension vector[num];
•      Para i<-1 Hasta num Con Paso 1 Hacer
•                Escribir "Ingrese el numero ", i;
•                Leer vector[i];
•      FinPara
•      mezcla(vector, num);
•      Escribir "los elementos ordenados del vector son: ";
•      Para i<-1 Hasta num Con Paso 1 Hacer
•                Escribir vector[i];
•      FinPara
• FinProceso
Subproceso:Mezcla
•   SubProceso mezcla ( array por referencia, n )
•            n1 <- 0; n2 <- 0; x <- 1; t <- 1;
•            Si n > 1 Entonces
•                               Si n mod 2 = 0 Entonces
•                                                 n1 <- trunc(n / 2);
•                                                 n2 <- n1;
•                               Sino
•                                                 n1 <- trunc(n / 2);
•                                                 n2 <- n1+1;
•                               FinSi
•                               dimension vector1[n1];
•                               dimension vector2[n2];
•                               Para x<-1 Hasta n1 Con Paso 1 Hacer
•                                                 vector1[x] <- array[x];
•                               FinPara
•                               Para t <- 1 Hasta n2 Con Paso 1 Hacer
•                                                 vector2[t] <- array[x];
•                                                 x <- x+1;
•                               FinPara
•                               mezcla(vector1,n1);
•                               mezcla(vector2,n2);
•                               mezclar(vector1, n1, vector2, n2, array);
•            FinSi
•   FinSubProceso
Subproceso:Mezclar
•   SubProceso mezclar (arreglo1, n1, arreglo2, n2, arreglo3 por referencia)
•             x1<-1;
•             x2<-1;
•             x3<-1;
•             Mientras (x1 <= n1 y x2 <= n2) Hacer
•                              Si arreglo1[x1] < arreglo2[x2] Entonces
•                                                 arreglo3[x3] <- arreglo1[x1];
•                                                 x1<-x1 + 1;
•                              Sino
•                                                 arreglo3[x3] <- arreglo2[x2];
•                                                 x2<-x2 + 1;
•                              FinSi
•
•                              x3<-x3 + 1;
•             FinMientras
•             Mientras x1 <= n1 Hacer
•                              arreglo3[x3] <- arreglo1[x1]
•                              x1<-x1 + 1;
•                              x3<-x3 + 1;
•             FinMientras
•             Mientras x2 <= n2 Hacer
•                              arreglo3[x3] <- arreglo1[x2]
•                              x2<-x2 + 1;
•                              x3<-x3 + 1;
•             FinMientras
•   FinSubProceso
Ejemplo:
5      3       1




5      3       1



5      3       1



3      5       1




1          3   5
12    9   4    99   120   1     3    10



12   9    4    99   120    1    3    10



12   9    4    99   120   1      3   10


12   9    4    99   120    1     3   10



9    12   4    99    1    120    3   10



4    9    12   99    1     3    10   120


1     3   4     9   10    12    99   120
38       27      43   3   9       82       10



                                                        3       9       10   27   38       43       82



    8        4       7    3   9       3

                                                        3       3       4    7    8        9



8        3       2    9   7   1   5        4



                                                    1       2       3    4   5    7    8        9
Referencias
• http://es.wikipedia.org/wiki/Ordenamiento_p
  or_mezcla

Más contenido relacionado

PPTX
Mergesort
PPTX
Ordenamiento QuickSort
PPTX
Programación 3: listas enlazadas
PDF
Operadores y expresiones en pseudocódigo
PDF
Algoritmo de ordenamiento: Heap Sort
PPTX
Metodos de ordenamiento
PPTX
Ordenamiento en C++
Mergesort
Ordenamiento QuickSort
Programación 3: listas enlazadas
Operadores y expresiones en pseudocódigo
Algoritmo de ordenamiento: Heap Sort
Metodos de ordenamiento
Ordenamiento en C++

La actualidad más candente (20)

DOCX
Codigo para crear la base de datos
PDF
Búsqueda no informada - Búsqueda bidireccional
PPTX
Estructura de Datos - Unidad II Recursividad
PPTX
Ingeniería de software modelo incremental
PPTX
Método de ordenación por inserción directa
PPTX
Ordenamiento por seleccion
PPTX
U1 Analisis Algoritmos Complejidad
PPTX
Diagrama UML de Clases
PPTX
Técnicas de representación del conocimiento
PPTX
10 sistemas gestores de base de datos
PPTX
Quicksort
PPTX
Ejemplo ciclo mientras que
PPTX
Listas doblemente enlazadas
PPTX
Tipos de listas en estructura de datos
PPT
Recursividad
PPTX
Java pilas (Stacks) y colas (Queues)
PPT
Sentencias de Repeticion
PPTX
Inversa de una matriz
PPTX
Modelos concurrentes
PPTX
Busqueda por profundidad iterativa
Codigo para crear la base de datos
Búsqueda no informada - Búsqueda bidireccional
Estructura de Datos - Unidad II Recursividad
Ingeniería de software modelo incremental
Método de ordenación por inserción directa
Ordenamiento por seleccion
U1 Analisis Algoritmos Complejidad
Diagrama UML de Clases
Técnicas de representación del conocimiento
10 sistemas gestores de base de datos
Quicksort
Ejemplo ciclo mientras que
Listas doblemente enlazadas
Tipos de listas en estructura de datos
Recursividad
Java pilas (Stacks) y colas (Queues)
Sentencias de Repeticion
Inversa de una matriz
Modelos concurrentes
Busqueda por profundidad iterativa
Publicidad

Destacado (10)

PPT
Merge sort
PPTX
Merge Sort
PPTX
Ordenamiento por mezcla
PPTX
Ordenamiento por mezcla
PPTX
Ordenamiento con árbol binario
PPTX
Metodo burbuja
PDF
Algortimos De Ordenamiento
PPTX
Ordenamiento x insercion espo
PPTX
Metodos de ordenamiento
Merge sort
Merge Sort
Ordenamiento por mezcla
Ordenamiento por mezcla
Ordenamiento con árbol binario
Metodo burbuja
Algortimos De Ordenamiento
Ordenamiento x insercion espo
Metodos de ordenamiento
Publicidad

Último (20)

PDF
Análisis de Comunidad | Seminario Espacio y Hábitat
PDF
Act. 2.1 Recursos Naturales y su Clasificación..pdf
DOCX
FCE POLITICa tercer grado secundaria adolescentes
PPTX
7ma sesion de clase de produccion de cuyes y conejos.....pptx
PDF
LINEAMIENTOS EN MATERIA DE OBRAS PUBLICAS.pdf
PDF
Ideacion y conceptualización-Act2-EmelyBermeo-Parte 1.pdf
PPTX
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
PDF
Empresas globales que cotizan en bolsa por efectivo disponible (2025).pdf
DOCX
FCE POLITICA tercer grado secundaria adolescentes
PDF
un power point de minecraft, no está terminado.
PDF
Arquitectura Expresionista, ARQUITECTURA
PDF
AMTD-609_FORMATOALUMNOTRABAJOFINAL602.pdf
PPTX
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
PPTX
11avo sesion de clase de produccion de cuyes y conejos.....pptx
PPTX
Las-Ultimas-Tendencias-Tecnologicas-en-Laboratorio-Clinico-ACTUALIZADA.pptx
PPTX
Presentación de resumen del producto.pptx
PDF
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
PDF
BRIEF DE UNA NUEVA MARCA LLAMADA PUBLI AGENCY
PPTX
Conferencia orientadora Sinapsis y Receptores.pptx
PDF
Calendario socio productivo Baré ultimo.pdf
Análisis de Comunidad | Seminario Espacio y Hábitat
Act. 2.1 Recursos Naturales y su Clasificación..pdf
FCE POLITICa tercer grado secundaria adolescentes
7ma sesion de clase de produccion de cuyes y conejos.....pptx
LINEAMIENTOS EN MATERIA DE OBRAS PUBLICAS.pdf
Ideacion y conceptualización-Act2-EmelyBermeo-Parte 1.pdf
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
Empresas globales que cotizan en bolsa por efectivo disponible (2025).pdf
FCE POLITICA tercer grado secundaria adolescentes
un power point de minecraft, no está terminado.
Arquitectura Expresionista, ARQUITECTURA
AMTD-609_FORMATOALUMNOTRABAJOFINAL602.pdf
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
11avo sesion de clase de produccion de cuyes y conejos.....pptx
Las-Ultimas-Tendencias-Tecnologicas-en-Laboratorio-Clinico-ACTUALIZADA.pptx
Presentación de resumen del producto.pptx
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
BRIEF DE UNA NUEVA MARCA LLAMADA PUBLI AGENCY
Conferencia orientadora Sinapsis y Receptores.pptx
Calendario socio productivo Baré ultimo.pdf

Merge sort

  • 1. Ordenamiento por mezcla (merge-sort)
  • 2. Merge-sort • Conceptualmente, el ordenamiento por mezcla funciona de la siguiente manera: – Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. En otro caso: – Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del tamaño. – Ordenar cada sublista recursivamente aplicando el ordenamiento por mezcla. – Mezclar las dos sublistas en una sola lista ordenada. • El ordenamiento por mezcla incorpora dos ideas principales para mejorar su tiempo de ejecución: – Una lista pequeña necesitará menos pasos para ordenarse que una lista grande. – 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.
  • 3. Proceso Principal • Proceso principal • Escribir "Ingrese el tamano del vector"; • Leer num; • dimension vector[num]; • Para i<-1 Hasta num Con Paso 1 Hacer • Escribir "Ingrese el numero ", i; • Leer vector[i]; • FinPara • mezcla(vector, num); • Escribir "los elementos ordenados del vector son: "; • Para i<-1 Hasta num Con Paso 1 Hacer • Escribir vector[i]; • FinPara • FinProceso
  • 4. Subproceso:Mezcla • SubProceso mezcla ( array por referencia, n ) • n1 <- 0; n2 <- 0; x <- 1; t <- 1; • Si n > 1 Entonces • Si n mod 2 = 0 Entonces • n1 <- trunc(n / 2); • n2 <- n1; • Sino • n1 <- trunc(n / 2); • n2 <- n1+1; • FinSi • dimension vector1[n1]; • dimension vector2[n2]; • Para x<-1 Hasta n1 Con Paso 1 Hacer • vector1[x] <- array[x]; • FinPara • Para t <- 1 Hasta n2 Con Paso 1 Hacer • vector2[t] <- array[x]; • x <- x+1; • FinPara • mezcla(vector1,n1); • mezcla(vector2,n2); • mezclar(vector1, n1, vector2, n2, array); • FinSi • FinSubProceso
  • 5. Subproceso:Mezclar • SubProceso mezclar (arreglo1, n1, arreglo2, n2, arreglo3 por referencia) • x1<-1; • x2<-1; • x3<-1; • Mientras (x1 <= n1 y x2 <= n2) Hacer • Si arreglo1[x1] < arreglo2[x2] Entonces • arreglo3[x3] <- arreglo1[x1]; • x1<-x1 + 1; • Sino • arreglo3[x3] <- arreglo2[x2]; • x2<-x2 + 1; • FinSi • • x3<-x3 + 1; • FinMientras • Mientras x1 <= n1 Hacer • arreglo3[x3] <- arreglo1[x1] • x1<-x1 + 1; • x3<-x3 + 1; • FinMientras • Mientras x2 <= n2 Hacer • arreglo3[x3] <- arreglo1[x2] • x2<-x2 + 1; • x3<-x3 + 1; • FinMientras • FinSubProceso
  • 6. Ejemplo: 5 3 1 5 3 1 5 3 1 3 5 1 1 3 5
  • 7. 12 9 4 99 120 1 3 10 12 9 4 99 120 1 3 10 12 9 4 99 120 1 3 10 12 9 4 99 120 1 3 10 9 12 4 99 1 120 3 10 4 9 12 99 1 3 10 120 1 3 4 9 10 12 99 120
  • 8. 38 27 43 3 9 82 10 3 9 10 27 38 43 82 8 4 7 3 9 3 3 3 4 7 8 9 8 3 2 9 7 1 5 4 1 2 3 4 5 7 8 9