Está en la página 1de 6

FACULTAD DE INGENIERIA

ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA DE SISTEMAS´

INFORME ACADÉMICO

TITULO:

ALGORITMO DE ORDENAMIENTO

MERGESORT

AUTOR:

MATIAS BENITES ALEXANDER

ASESOR:

ING. IVAN MICHELL CASTILLO JIMÉNEZ

PIURA – PERU

2019
Algoritmo Merge Sort

El método MergeSort es un algoritmo de ordenación recursivo con un número de


comparaciones entre elementos del array mínimo.
Conceptualmente, una ordenación de fusión funciona de la siguiente manera:

 Si la longitud de la lista es 0 o 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.
Su funcionamiento es asimilar al Quicksort, y está basado en la técnica divide y vencerás.
EJEMPLO 01
Se ordena una lista de números enteros aplicando el algoritmo Mergesort.
1. Realizamos nuestro algoritmo, basándonos en el lenguaje Java utilizando el
emulador NetBeans.

2. Nuestro algoritmo está constituido por 4 métodos:


Método OrdenacionMergesort

Método CombinarVector

Metodo ImprimirVector
Explicando el Metoodo main

Cuando se ejecuta el programa el método main es el primero en ejecutarse.

-En la línea 5 creamos nuestro arreglo de nombre vec [] e instanciamos el arreglo con los números
ingresados.

-Una vez teniendo nuestro array lleno, en la línea 7 hacemos uso del método imprimirVector el
cual tiene como función imprimir el array original y en la línea 9 se procede a llamar al método
OrdenacionMergesort para realizar el proceso de ordenamiento.

-Finalmente en la línea 10 se vuelve hacer uso del método imprimirVector para la impresión del
array ordenado.

Mi array vec [] estará conformado para este ejemplo de 7 elementos de tipo entero (números) lo
cual quedaría de la siguiente manera:

38 27 43 3 9 82 10

Explicando el método OrdenacionMergesort

En la línea 13, se realiza un IF en el cual se analiza, si la longitud del array e 0 o 1, entonces ya está
ordenada, por ende retorna el mismo array.

-En la línea 14, se declara una variable mitad la cual nos sirve como referencia para partir nuestro
array en 2 y empezar con las subdivisiones.
-En la línea 15 y 16 se hace uso de un método copyOfRange propio de la clase Arrays, el cual recibe
3 parámetros, este método nos ayudara a las divisiones desde la mitad y así sucesivamente;
quedando de la siguiente manera nuestro array.

Imagen 1

-Luego se hace uso de la recursividad llamando al método OrdenacionMergesort pasando como


parámetro el array de la izquierda (izq), realizamos el mismo proceso para el array de la derecha
(der).

Imagen 2

Finalmente obtendremos array de 1 elemento, los cuales con el método combinarVector se


procederá al ordenamiento de orden ascendente.

-Este método lo que hace es el ordenamiento, la comparación de cada sublista, para ello
utilizamos un FOR que controla el número de veces que se va a repetir el proceso en este caso
hasta 6 veces, realizándolo de la siguiente manera.

Imagen 3

-Como se puede apreciar los cuadros de borde azul son las comparaciones se hicieron 7 veces en
el bucle.

También podría gustarte