Merge Sort Paralelo

mergeSort(lista)

if lista.tamaño = 1

return lista[0]

listaIz = creaLista[lista[0] … lista[mitad]]

listaDer = creaLista[lista[mitad + 1] … lista[lista.tamaño]]

hacer en paralelo:

listaIzquierda = mergeSort(listaIzquierda)

listaDerecha = mergeSort(listaDerecha)

return merge(listaIzquierda, listaDerecha)

merge(listaIz, listaDer)

listaUnida = []

hacer en paralelo:

añadir elementos de listaIz y listaDer a listaUnida

return listaUnida