Mergesort
Transcript of Mergesort
![Page 1: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/1.jpg)
Julio Cesar García Lechuga 1449675Raúl Rodríguez Salazar 1460392Alberto Huerta Jaramillo
Mergesort
![Page 2: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/2.jpg)
Se basa en la técnica divide y vencerás (DYV).
Divide: Divide la secuencia de n elementos en dos subsecuencias de n/2 elementos.
Vence: Ordena ambas subsecuencias de manera recursiva.
Ordenamiento por mezcla
![Page 3: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/3.jpg)
Combina: Mezcla las dos subsecuencias ordenadas para obtener la solución del problema.
![Page 4: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/4.jpg)
Si A[n..] (n==1){«Esta Ordenado»}Si noRealiza {A[n]/2;}Mientras (n=!1)Mezcla
Pseudocódigo
![Page 5: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/5.jpg)
6 12 4 9 8 13 5
4 6 9 12 5 8 13
4 5 6 8 9 12 13
Llamada recursiva 1 ( MergeSort )
Llamada recursiva 2 ( MergeSort )
Llamada recursiva 3 ( MergeSort )
Volver 3 a 2 ( Combina )
Volver 2 a 1 ( Combina )
Combina
Ordenamiento por mezcla
![Page 6: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/6.jpg)
1. Si la longitud de la lista es 0 ó 1, entonces
ya está ordenada. En otro caso:
2. Dividir la lista desordenada en dos sublistas de aproximadamente la mitad del tamaño.
Funcionamiento
![Page 7: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/7.jpg)
3. Ordenar cada sublista recursivamente aplicando el ordenamiento por mezcla.
4. Mezclar las dos sublistas en una sola lista ordenada.
Funcionamiento
![Page 8: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/8.jpg)
Ejemplo de ordenamiento por mezcla ordenar una
lista de puntos
aleatorios.
![Page 9: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/9.jpg)
Método estable de ordenamiento mientras la operación de mezcla (Merge) sea bien implementada.
Este algoritmo es efectivo para conjuntos de datos que se puedan acceder secuencialmente como arreglos, vectores y listas ligadas
Ventajas
![Page 10: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/10.jpg)
Su principal desventaja radica en que está definido recursivamente y su implementación no recursiva emplea una pila, por lo que requiere un espacio adicional de memoria para almacenarla.
Desventajas
![Page 11: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/11.jpg)
El ordenamiento por mezcla tiene una complejidad de O(n logn).
Complejidad
![Page 12: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/12.jpg)
Aunque heapsort tiene los mismos límites de tiempo que merge sort, requiere sólo O(1) espacio auxiliar en lugar del O(n) de merge sort, y es a menudo más rápido en implementaciones prácticas.
Comparación con otros algoritmos de ordenamiento
![Page 13: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/13.jpg)
Quicksort, sin embargo, es considerado por mucho como el más rápido algoritmo de ordenamiento. Merge sort es un ordenamiento estable, paraleliza mejor, y es más eficiente manejando medios secuenciales de acceso lento.
Comparación con otros algoritmos de ordenamiento
![Page 14: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/14.jpg)
Merge sort es a menudo la mejor opción para ordenar una lista enlazada: es relativamente fácil implementar merge sort de manera que sólo requiera Θ(1) espacio extra.
Comparación con otros algoritmos de ordenamiento
![Page 15: Mergesort](https://reader033.fdocuments.mx/reader033/viewer/2022060110/5561a030d8b42ae9708b4706/html5/thumbnails/15.jpg)
http://es.wikipedia.org/wiki/Ordenamiento_por_mezcla
www.dtic.upf.edu/~jonsson/pII09/Apuntes/TeoriaSemana5.ppt
http://aprende-sistemasarreglos.blogspot.com/2009/03/mergesort.html
Referencia Bibliográfica