Skip to content

Instantly share code, notes, and snippets.

@israelem
Last active April 16, 2018 08:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save israelem/fbf790baf65f1a304f0e04166379f8bf to your computer and use it in GitHub Desktop.
Save israelem/fbf790baf65f1a304f0e04166379f8bf to your computer and use it in GitHub Desktop.
Ordenación por mezcla en Python 3
def mergesort(m):
if len(m) <= 1:
return m
else:
mitad = len(m) // 2
izquierda = m[:mitad]
derecha = m[mitad:]
izquierda = mergesort(izquierda)
derecha = mergesort(derecha)
if izquierda[len(izquierda)-1] <= derecha[0]:
return izquierda + derecha
resultado = merge(izquierda, derecha)
return resultado
def merge(izquierda, derecha):
resultado = []
while len(izquierda) > 0 and len(derecha) > 0:
if izquierda[0] <= derecha[0]:
resultado.append(izquierda[0])
izquierda = izquierda[1:]
else:
resultado.append(derecha[0])
derecha = derecha[1:]
if len(izquierda) > 0:
resultado += izquierda
if len(derecha) > 0:
resultado += derecha
return resultado
if __name__ == '__main__':
a = [2, 26, 4, 3, 1]
print(a)
a = mergesort(a)
print(a)
@israelem
Copy link
Author

Ejemplo de ordenación por mezcla o merge soft, para el lenguaje Python 3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment