sábado, 9 de mayo de 2015

Ordenación por mezcla - Merge sort

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

No hay comentarios.:

Publicar un comentario