Algoritmo:
Funcion Merge_sort ( a[] , inicio , fin) n = fin - inicio + 1 Si n < 2 Retornar mitad=( inicio + fin ) / 2 Merge_sort ( a , inicio , mitad ) Merge_sort ( a , mitad + 1 , fin ) mezclar ( m , inicio , fin ) Funcion mezclar ( a[] , inicio , fin ) aux[ fin - inicio + 1 ] mitad = ( inicio + fin ) / 2 i = inicio j = mitad + 1 k = 0 Mientras i <= mitad && j <= fin Si a[i] < a[j] aux[k++] = a[i++] Si No aux[k++] = a[j++] Mientras i <= mitad aux[k++] = a[i++] Mientras j <= fin aux[k++] = a[j++] k=0 Para i = inicio Hasta fin a[i] = aux[k++]Ordenación por mezcla - Merge sort