Ordenamiento Por Mezcla
Ordenamiento Por Mezcla
Ordenamiento Por Mezcla
Introduccin
Es sabido que las estructuras de datos son utilizadas para guardar informacin, luego
para recuperar esta informacin es necesario que este ordenada de manera eficiente,
es aqu donde son introducidos los Algoritmos de Ordenamiento.
Los Algoritmos de Ordenamientos son mtodos para ordenar las diferentes estructuras
de datos bsicas, nos permite cambiar el orden (posicin) de los elementos para
dejarlos ordenados segn un criterio fijo (numricamente, de menor a mayor, de
mayor a menor, etc.).
2. Marco terico
Combinar: Combina las dos subsecuencias ordenadas para generar la solucin, cuando
quede un solo dato en un subgrupo se termina el proceso de divisin pues ese
subgrupo ya est ordenado.
Una gran ventaja del MergeSort es que su algoritmo tiene mucha estabilidad (se evitan
los problemas de intercambio de claves en la manipulacin de datos).
2.1 Anlisis
Algoritmo de ordenacin :
2.2 Funcionamiento
2.3 Caractersticas
La eficiencia de este algoritmo es bastante notable en tiempo de ejecucin en
comparacin con otros, ya que su manera de trabajo por grupos pequeos agiliza la
organizacin de los datos.
2.4 Ventajas
Una gran ventaja del MergeSort es que su algoritmo tiene mucha estabilidad (se evitan
los problemas de intercambio de claves en la manipulacin de datos). En la gestin de
Bases de Datos se utiliza comnmente cuando la cantidad de registros en el ndice es
relativamente baja, ya que en caso contrario es poco productivo debido a que gasta el
doble de espacio del que ocupan inicialmente los datos.
2.5 Desventajas
A los algoritmos que realizan el proceso de ordenamiento dentro del mismo vector se
les denomina algoritmos de ordenamiento "in-situ", el algoritmo de MergeSort no
pertenece a esta familia ya que no utiliza el espacio sobre el que estn almacenados
los datos sino que para poder funcionar requiere de un espacio de memoria adicional
del tamao de los datos a ordenar en el cual se realicen las mezclas.
Metodo Complejidad
Burbuja n2
Insercin n2
Seleccin n2
Montculo nlog2n
Fusion nlog2n
Shell nlog2n
Quicksort nlog2n
3. Marco Practico
Veamos una panormica de la estrategia que sigue este algoritmo para ordenar una
secuencia S de n elementos:
Si S tiene uno o ningn elemento, est ordenada
Si S tiene al menos dos elementos se divide en dos secuencias S1 y S2
S1 contiene los primeros n/2 elementos y S2 los restantes
Ordenar S1 y S2, aplicando recursivamente este procedimiento
Mezclar S1 y S2 en S, de forma que ya S1 y S2 estn ordenados
Veamos ahora como sera la estrategia para mezclar las secuencias:
Se tienen referencias al principio de cada una de las secuencias a mezclar (S1 y S2).
Mientras en alguna secuencia queden elementos, se inserta en la secuencia resultante
(S) el menor de los elementos referenciados y se avanza esa referencia una posicin.
3.1 Codigo
#include "stdafx.h"
void mergesort(int *v, int i, int f);
void merge(int *v, int i, int m, int f);
v = new int[n];
for(int i=0; i<n; i++)
{
printf("Elemento %d: ", i+1);
scanf("%d", &v[i]);
}
mergesort(v, 0, n-1);
}
4. Conclusiones
Los Algoritmos de Ordenamientos son mtodos para ordenar las diferentes estructuras
de datos bsicas, nos permite cambiar el orden (posicin) de los elementos para
dejarlos ordenados segn un criterio fijo (numricamente, de menor a mayor, de
mayor a menor, etc.).
Hay mtodos simples de implementar que son tiles cuando el nmero de objetos a
ordenar es pequeo, pero por otro lado estn los mtodos ms complejos que son
aplicables a un nmero mayor de objetos, obteniendo una gran velocidad de
ordenamiento.
5. Biografa
http://es.wikipedia.org/wiki/Ordenamiento_por_mezcla
http://comunidad.dragonjar.org/f179/mergesort-ordenamiento-por-mezcla-
10082/
https://librosweb.es/libro/algoritmos_python/capitulo_20/ordenamiento_p
or_mezcla_o_merge_sort.html
http://es.slideshare.net/pambele/ordenamiento-por-mezcla-13842785