Classificação de listas de dados é um problema que tem atormentado os programadores desde o início da programação de computadores. Classificando qualquer lista de dados pode acabar como uma memória e demorada tarefa. Devido a isso , os diferentes métodos de classificação têm sido inventados para minimizar o desafio e esforço de triagem . Um método é fundir classificação. Subdivide uma lista recursivamente em elementos singulares e recombina a lista de forma ordenada. Qualquer linguagem de programação que suporta recursão , como Python, pode implementar uma espécie de mesclagem. Coisas que você precisa 
 Python Interpreter com Ambiente de desenvolvimento interativo 
 Show Mais instruções 
 1 
 Defina a função " mergesort " . Esta função básica se chama recursivamente , dividindo o tamanho da lista ao meio com cada chamada. Uma vez que a função mergesort atinge uma lista com um elemento, a recursão pára eo elemento retornos. Como a recursão mergesort desenrola , cada lista menor é mesclados em ordem de classificação. Este exemplo mostra uma função mergesort básica que recebe uma lista como um argumento : 
 
 >>> def mergesort ( li ) : 
 
 . . . if len ( li ) < 2: 
 
 . . . 
 retorno li 
 . . . mid = len ( li ) /2 
 
 . . . primeiro = mergesort ( li [ : meados ] ) 
 
 . . . last = mergesort ( li [ mid: ] ) 
 
 . . . merge voltar ( first, last) 
 2 
 Configure o método de mesclagem. Esta função irá servir como o método de classificação , que retorna uma lista ordenada de elementos. O método merge leva duas listas já classificadas . Em seguida, define uma lista interna " ordenado" que irá representar as listas de argumentos ordenados combinados . O método merge realiza esta tomando o menor elemento e inseri-lo em uma nova lista de " ordenado". Uma vez que uma das listas termina , a outra lista é inserido em sua totalidade 
 
 >>> def fundir (x, y): . 
 
 . . . = ordenados [] 
 3 
 Mesclar as listas no método de mesclagem. O loop "while" no exemplo compara cada item da lista por item, levando o menor elemento e inseri-lo em uma nova lista de " ordenado". Uma vez que uma das listas termina , a outra lista é inserido em sua totalidade, ea nova lista ordenada é retornada : 
 
 . . . i, j = 0, 0 
 
 . . . enquanto i < len (x) e j < len ( y): 
 
 . . . se x [i] < = y [j] : 
 
 . . . sorted.append (x [i]) 
 
 . . . i + = 1 
 
 . . . outra coisa : 
 
 . . . sorted.append (y [j] ) 
 
 . . . j + = 1 
 
 . . . classificadas + = x [ I: ] 
 
 . . . classificadas + = y [ : j ] 
 
 . . . voltar classificadas