Merge Sort

14
Merge Sort

Transcript of Merge Sort

Page 1: Merge Sort

Merge Sort

Page 2: Merge Sort

Merge Sort

• Este algoritmo tambien es llamado de Intercalación o combinación, debido que combina (intercala) dos estructuras previamente ordenadas.

Page 3: Merge Sort

Merge Sort

Supongamos los siguientes vectores previamente ordenados, el nuevo vector contendra la cantidad de elementos de ambos

3 5 8 12 17 1 6 9 24

Se comparan los primeros elementos 3 y 1, el menor se copia

Page 4: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1

Se comparan los siguientes valores 3 y 6, se mueve el menor

Se copia el valor del vector B y los subindices K y J, se mueven una posición

Page 5: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3

Se comparan los siguientes valores 5 y 6, se mueve el menor

Se copia el valor del vector A y los subindices K e I, se mueven una posición

Page 6: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3 5

Se comparan los siguientes valores 8 y 6, se mueve el menor

Se copia el valor del vector A y los subindices K e I, se mueven una posición

Page 7: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3 5 6

Se comparan los siguientes valores 8 y 9, se mueve el menor

Se copia el valor del vector B y los subindices K y J, se mueven una posición

Page 8: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3 5 6 8

Se comparan los siguientes valores 12 y 9, se mueve el menor

Se copia el valor del vector A y los subindices K e I, se mueven una posición

Page 9: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3 5 6 8 9

Se comparan los siguientes valores 12 y 24, se mueve el menor

Se copia el valor del vector B y los subindices K y J, se mueven una posición

Page 10: Merge Sort

Merge Sort

3 5 8 12 17 1 6 9 24

1 3 5 6 8 9 12

Se comparan los siguientes valores 17 y 24, se mueve el menor

Se copia el valor del vector A y los subindices K e I, se mueven una posición

Page 11: Merge Sort

Merge Sort

1 3 5 6 8 9 12 17 24

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

De igual forma se sigue con los siguientes valores hasta completar el recorrido

Page 12: Merge Sort

Merge Sort

Inicio combina( A : vector ; B : vector)Crear Vector C con longitudes de A y BI 1J 1K 1Mientras (I < longitud A) y (j < longitud B) hacer Si A[ I ] < B[ J ] entonces

C[ K ] A[ I ]K K + 1I I + 1

de lo contrarioC[ K ] B[ J ]K K + 1J J + 1

fin hacer

Mientras (I < longitud A) hacerC[ K ] A[ I ]K K + 1I I + 1

Mientras (J < longitud B) hacerC[ K ] B[ J ]K K + 1J J + 1

Fin combina

Page 13: Merge Sort

Se puede utilizar este algoritmo para ordenar un vector.

Merge Sort

Inicio MergeSort( A : vector ; liminf : entero ; limsup: entero) Si (liminf = limsup) entonces finalizarde lo contrario medio liminf + limsup / 2 (combina (MergeSort (A , liminf, medio), MergeSort( A , medio, limsup))Fin Inicio

Page 14: Merge Sort

Merge Sort