Clasificación de listas de datos es un problema que ha vejado programadores desde el inicio de la programación de computadoras . Clasificación cualquier lista de datos puede terminar como un recuerdo y que requiere mucho tiempo la tarea. Debido a esto , diferentes métodos de clasificación han sido inventados para reducir al mínimo el desafío y el esfuerzo de clasificación . Un método es combinar clasificación . Se subdivide una lista recursiva en elementos singulares y recombina la lista en forma ordenada. Cualquier lenguaje de programación que soporta recursión , como Python, se puede implementar un tipo de combinación . Cosas que necesitará
Python Interpreter con entorno de desarrollo interactivo
Ver Más instrucciones
1
definir la función " mergesort " . Esta función básica llama a sí mismo de forma recursiva , dividiendo el tamaño de la lista por la mitad con cada llamada. Una vez que la función mergesort golpea una lista con un solo elemento, la repetición se detiene y los rendimientos de los elementos. Como se desenrolla la recursividad mergesort , cada lista más pequeña se fusionaron de forma ordenada . En este ejemplo se muestra una función básica mergesort que toma una lista como argumento : >>> def
mergesort ( li ) :
. . . si len ( li ) < 2 :
. . . volver li
. . . mid = len ( li ) /2
. . . primero = mergesort ( li [: mitad] )
. . . last = mergesort ( li [ media : ] )
. . . volver fusionar (nombre, apellido )
2
Establecer el método de combinación. Esta función servirá como el método de clasificación , sino que devuelve una lista ordenada de elementos . El método de combinación tiene dos listas - ya ordenados. A continuación, se define una lista interna " ordenado " que representará a las listas de argumentos ordenados combinados. El método de combinación logra esto mediante la adopción de la menor elemento e insertarlo en una nueva lista de " ordenar " . Una vez que uno de los extremos de las listas , la otra lista se inserta en su totalidad
>>> def fusión (x, y): .
. . . ordenados = [ ]
3
Combinar las listas en el método de combinación. El bucle "mientras " en el ejemplo compara cada elemento de la lista por partida , teniendo el elemento más pequeño e insertarlo en una nueva lista de " ordenar " . Una vez que una de las listas termina , la otra lista se inserta en su totalidad, y la nueva lista ordenada se devuelve :
. . . i , j = 0 , 0
. . . mientras i < len ( x) y j < len ( y):
. . . si x [ i ] < = y [ j ] :
. . . sorted.append ( x [ i])
. . . i + = 1
. . . más:
. . . sorted.append ( y [ j ] )
. . . j + = 1
. . . ordenados + = x [ I ]
. . . ordenados + = y [: j ]
. . . volver ordenados