Trifusion e Implementación de Python en menos de 128 palabras

La fusión de tri sigue el paradigma de división para gobernar que consiste en dividir la tarea inicial en dos tareas más pequeñas similares.

El algoritmo es el siguiente:
Dividimos la lista para ser ordenada en dos mitades.
Ordenamos cada uno de ellos.
Las dos mitades obtenidas se combinan para reconstruir la lista ordenada.

Este algoritmo se aplica recursivamente, es decir, hasta que la lista que se va a ordenar se compone de un solo elemento.

Tri fusión (fuente: wikipedia)
#Tri función de fusión de la división de la tabla
def tri_fusion (tabla):
    si len (tabla)<= 1:></= 1:> 
        tabla de retorno
    pivote - len (tabla)//2
    Tabla1 - Tabla 1[:pivot]
    Tabla2 - Tabla2[pivot:]
    izquierda - tri_fusion (tabla1)
    derecha - tri_fusion (tabla2)
    fusión - fusión (izquierda, derecha)
    retorno fusión


#Tri función de fusión de 2 listas
def fusión (tabla1, tabla2):
    indice_tableau1 0
    indice_tableau2 0    
    taille_tableau1 - len (tabla1)
    taille_tableau2 - len (tabla2)
    tableau_fusionne[]
    mientras indice_tableau1<taille_tableau1 and=""></taille_tableau1><taille_tableau2:></taille_tableau2:>
        Si la tabla1< tab[indice_tableau1]leau2:></ tableau2[indice_tableau2]:>
            tableau_fusionne.append (tabla1[indice_tableau1])
            indice_tableau1 1
        Otro:
            tableau_fusionne.append (tabla2[indice_tableau2])
            indice_tableau2 1
    mientras indice_tableau1<taille_tableau1:></taille_tableau1:>
        tableau_fusionne.append (tabla1)
        indice_tableau1
    mientras indice_tableau2<taille_tableau2:></taille_tableau2:>
        tableau_fusionne.append (tabla2)
        indice_tableau2
    tableau_fusionne de regreso

Mesa[11, 222, 3, 899, 24, 5, 46, 67]
impresión (tabla)
tableau_trie - tri_fusion (tabla)
impresión (tableau_trie)

Auteur / autrice

Retour en haut