SlideShare una empresa de Scribd logo
 
Merge Sort Este algoritmo tambien es llamado de Intercalación o combinación, debido  que combina (intercala) dos estructuras previamente ordenadas.
Historia  Fue desarrollado en 1945 por John Von Neumann. 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.
 
Merge Sort Supongamos los siguientes vectores previamente ordenados, el nuevo vector contendra la cantidad de elementos de ambos Se comparan los primeros elementos 3 y 1, el menor se copia I J K A B C 3 5 8 12 17 1 6 9 24
Merge Sort Se comparan los siguientes valores 3 y 6, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1
Merge Sort Se comparan los siguientes valores 5 y 6, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3
Merge Sort Se comparan los siguientes valores 8 y 6, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5
Merge Sort Se comparan los siguientes valores 8 y 9, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6
Merge Sort Se comparan los siguientes valores 12 y 9, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8
Merge Sort Se comparan los siguientes valores 12 y 24, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8 9
Merge Sort Se comparan los siguientes valores 17 y 24, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8 9 12
Merge Sort El proceso termina cuando uno de los dos subindices I o J, llega hasta la longitud del vector.  En ese momento se termina de copiar los siguientes valores del  vector K De igual forma se sigue con los siguientes valores hasta completar el recorrido C 1 3 5 6 8 9 12 17 24
VENTAJAS Método estable de ordenamiento mientras la operación de mezclas (merge) este bien implementada. Este algoritmo es efectivo para conjuntos de datos que se puedan acceder como arreglos , vectores y listas ligadas.
DESVENTAJAS Su principal desventaja radica en que esta definido recursivamente y su implementación no recursiva emplea una pila , por lo que requiere un espacio adicional de memoria para almacenarla.
http://ingecomp.mforos.com/674005/3017040-animacion-de-algoritmos-de-ordenamiento-resubido/
Merge Sort Inicio combina( A : vector ; B : vector) Crear Vector C con longitudes de A y B I    1 J   1 K   1 Mientras (I < longitud A) y (j < longitud B)  hacer Si A[ I ] < B[ J ] entonces C[ K ]    A[ I ] K    K + 1 I    I + 1 de lo contrario C[ K ]    B[ J ] K    K + 1 J    J + 1 fin hacer Mientras (I < longitud A) hacer C[ K ]    A[ I ] K    K + 1 I    I + 1 Mientras (J < longitud B) hacer C[ K ]    B[ J ] K    K + 1 J    J + 1 Fin combina
Merge Sort Se puede utilizar este algoritmo para ordenar un vector. Inicio MergeSort( A : vector ; liminf : entero ; limsup: entero) Si (liminf = limsup) entonces  finalizar de lo contrario medio    liminf + limsup / 2 (combina (MergeSort (A , liminf, medio), MergeSort( A , medio, limsup)) Fin Inicio

Más contenido relacionado

PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
Shell exposición
PPTX
Lista de adyacencia
PPTX
Ordenamiento QuickSort
PPTX
Pilas estáticas. IESIT
PPTX
Estructura de Datos - Unidad VI: Métodos de Búsqueda
PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PDF
Algoritmo de ordenamiento: Heap Sort
Estructura de Datos - Unidad 5 metodos de ordenamiento
Shell exposición
Lista de adyacencia
Ordenamiento QuickSort
Pilas estáticas. IESIT
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
Algoritmo de ordenamiento: Heap Sort

La actualidad más candente (20)

PPTX
Metodos de ordenamiento 2
DOC
Metodo quicksort
PPTX
Metodo Intercambio
PPTX
Colas en programacion
PPTX
Método de Ordenamiento Directa (Burbuja)
PDF
Estructuras lineales unidad 3
PPTX
Programación 3: árboles binarios y ordenados
PDF
Aritmetica Modular
PPTX
Ordenamiento parte 2
PPTX
Metodos de ordenamiento
PPTX
3. algoritmos de ordenamiento interno
PDF
Metodo burbuja
PPT
Arboles Binarios
PDF
Árboles binarios, ABB y AVL
PDF
Árboles Multicamino, B y B+
PPTX
Listas doblemente enlazadas
PPTX
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
PPTX
Ordenamiento por seleccion
PPTX
ARBOLES AVL ROTACION DOBLE
DOCX
Listas como estructura de datos..
Metodos de ordenamiento 2
Metodo quicksort
Metodo Intercambio
Colas en programacion
Método de Ordenamiento Directa (Burbuja)
Estructuras lineales unidad 3
Programación 3: árboles binarios y ordenados
Aritmetica Modular
Ordenamiento parte 2
Metodos de ordenamiento
3. algoritmos de ordenamiento interno
Metodo burbuja
Arboles Binarios
Árboles binarios, ABB y AVL
Árboles Multicamino, B y B+
Listas doblemente enlazadas
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Ordenamiento por seleccion
ARBOLES AVL ROTACION DOBLE
Listas como estructura de datos..
Publicidad

Similar a Merge sort (20)

PPTX
Ordenamiento por mezcla
PDF
Divide y Vencerás
PPTX
Algoritmos de ordenamineto y busqueda
PPTX
Ordenamiento por mezcla
DOC
Algoritmos de ordenacion_implementacion
PDF
Informe ordenamiento
PDF
Informe ordenamiento
DOCX
Ordenamientos de vectores
PDF
Tiempo de ejecucion de particiones (quicksort)
PPTX
Presentacion de programacion 2
DOCX
Metodos de odenamiento de vctores
PPT
Unidad 1 1
DOCX
Algoritmos Ordenamiento
PPTX
Algoritmos para Ordenación, Búsqueda e Intercalación internas.pptx
PPTX
Metodos de Ordenamiento Parte 1
PPTX
Ordenacion y busqueda
DOC
Algoritmo metodo quicksort
Ordenamiento por mezcla
Divide y Vencerás
Algoritmos de ordenamineto y busqueda
Ordenamiento por mezcla
Algoritmos de ordenacion_implementacion
Informe ordenamiento
Informe ordenamiento
Ordenamientos de vectores
Tiempo de ejecucion de particiones (quicksort)
Presentacion de programacion 2
Metodos de odenamiento de vctores
Unidad 1 1
Algoritmos Ordenamiento
Algoritmos para Ordenación, Búsqueda e Intercalación internas.pptx
Metodos de Ordenamiento Parte 1
Ordenacion y busqueda
Algoritmo metodo quicksort
Publicidad

Merge sort

  • 1.  
  • 2. Merge Sort Este algoritmo tambien es llamado de Intercalación o combinación, debido que combina (intercala) dos estructuras previamente ordenadas.
  • 3. Historia Fue desarrollado en 1945 por John Von Neumann. 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.
  • 4.  
  • 5. Merge Sort Supongamos los siguientes vectores previamente ordenados, el nuevo vector contendra la cantidad de elementos de ambos Se comparan los primeros elementos 3 y 1, el menor se copia I J K A B C 3 5 8 12 17 1 6 9 24
  • 6. Merge Sort Se comparan los siguientes valores 3 y 6, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1
  • 7. Merge Sort Se comparan los siguientes valores 5 y 6, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3
  • 8. Merge Sort Se comparan los siguientes valores 8 y 6, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5
  • 9. Merge Sort Se comparan los siguientes valores 8 y 9, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6
  • 10. Merge Sort Se comparan los siguientes valores 12 y 9, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8
  • 11. Merge Sort Se comparan los siguientes valores 12 y 24, se mueve el menor I J K Se copia el valor del vector B y los subindices K y J, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8 9
  • 12. Merge Sort Se comparan los siguientes valores 17 y 24, se mueve el menor I J K Se copia el valor del vector A y los subindices K e I, se mueven una posición A B C 3 5 8 12 17 1 6 9 24 1 3 5 6 8 9 12
  • 13. Merge Sort El proceso termina cuando uno de los dos subindices I o J, llega hasta la longitud del vector. En ese momento se termina de copiar los siguientes valores del vector K De igual forma se sigue con los siguientes valores hasta completar el recorrido C 1 3 5 6 8 9 12 17 24
  • 14. VENTAJAS Método estable de ordenamiento mientras la operación de mezclas (merge) este bien implementada. Este algoritmo es efectivo para conjuntos de datos que se puedan acceder como arreglos , vectores y listas ligadas.
  • 15. DESVENTAJAS Su principal desventaja radica en que esta definido recursivamente y su implementación no recursiva emplea una pila , por lo que requiere un espacio adicional de memoria para almacenarla.
  • 17. Merge Sort Inicio combina( A : vector ; B : vector) Crear Vector C con longitudes de A y B I  1 J  1 K  1 Mientras (I < longitud A) y (j < longitud B) hacer Si A[ I ] < B[ J ] entonces C[ K ]  A[ I ] K  K + 1 I  I + 1 de lo contrario C[ K ]  B[ J ] K  K + 1 J  J + 1 fin hacer Mientras (I < longitud A) hacer C[ K ]  A[ I ] K  K + 1 I  I + 1 Mientras (J < longitud B) hacer C[ K ]  B[ J ] K  K + 1 J  J + 1 Fin combina
  • 18. Merge Sort Se puede utilizar este algoritmo para ordenar un vector. Inicio MergeSort( A : vector ; liminf : entero ; limsup: entero) Si (liminf = limsup) entonces finalizar de lo contrario medio  liminf + limsup / 2 (combina (MergeSort (A , liminf, medio), MergeSort( A , medio, limsup)) Fin Inicio