| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Python Programming >> Content
    Recursiva Merge Ordenar en Python
    Clasificación es tradicionalmente una tarea difícil en la informática. La elección de un algoritmo de clasificación que es eficiente y rápido puede ser difícil . A menudo , eficiente algoritmo de selección implica el conocimiento de que los datos sean ordenados , y ordena especializados suelen funcionar mucho mejor que los algoritmos de clasificación generalizadas . Sin embargo , ciertos tipos , como el " tipo de combinación , " pueden trabajar en situaciones generalizadas por romper conjuntos y clasificación pedazos más pequeños de forma recursiva. La Lista

    merge sort es un "divide y vencerás " algoritmo, ya que toma partes de las listas y de forma continua los rompe por la mitad hasta llegar a los elementos individuales de la lista , que luego se fusionaron en orden. Por ejemplo , comience con una lista numérica como

    5 6 2 4 1 9 8 3 7

    Ordenar una lista de este tipo con una mezcla tipo requerirá reducir a la mitad el tamaño de la lista varias veces hasta que cada número básico existe solo. Entonces , la clase puede comparar los números y ponerlos juntos en el orden correcto ( menor a mayor, en este caso) .
    El método Merge

    El método de combinación es sencillo:

    def merge ( primero , segundo )

    Tomar dos listas , el método unirlos comenzando a principios de cada lista. A continuación, se añade el siguiente menor cantidad de cada lista en una nueva lista . El resultado es una lista ordenada . ( Recuerde insertar correctamente pestaña espacio en blanco después de que el " tiempo " y declaraciones " if /else" . ) :

    While i < len ( primero) y j < len ( segundos ) :
    < p> si primero [ i ] < = segundos [ j ] :

    new_list.append ( primera [ i])

    i = i + 1

    más:

    new_list.append ( segundos [ j ] )

    j = j + 1 }

    Finalmente, después de unos extremos de la lista, los valores restantes se colocan en la nueva lista :

    new_list + = primera [ i: ]

    new_list + = segundos [c : ]

    regreso end_list
    Merge Sort Condiciones

    la actual fusión especie impulsa el algoritmo de clasificación principal . Hay dos partes funcionales : el aspecto condicional de que se detenga la recursión vez se subdividen en las listas y la repetición real que reduce a la mitad las listas. La condición de parada es lo primero :

    def mergesort ( lista ) :

    si len ( lista ) == 1 :


    regreso Lista

    Esto asegura que cuando una lista de sub alcanza sólo un elemento , ese elemento se devuelve con el fin para el que se va a combinar con los otros números.
    Merge Ordenar recursividad

    La segunda mitad del el tipo es la recursividad. Tras el " if" /condicional, de la siguiente manera :

    más:

    media = len ( lista ) /2

    start = mergesort ( lista [ media : ] )

    end = mergesort ( lista [: media ] )

    regreso merge (inicio, fin)

    Debido a la recursividad , después de que las listas se dividen en elementos individuales , el algoritmo las pistas hasta el último método de ejecución. Así , en el momento de la declaración de "retorno de combinación (inicio , final) " ejecuta el algoritmo devuelve un combinado, lista ordenada de los dos anteriormente se fusionaron , listas ordenadas de menor tamaño .

    Previous :

    next :
      Artículos relacionados
    ·Cómo obtener las funciones de un objeto en Python 
    ·Cómo convertir enteros a Dígitos en Python 
    ·Cómo consumir una fuente Atom en Python 
    ·¿Tiene Python necesita un adaptador 
    ·Cómo quitar Camino De argv [ 0 ] en Python 
    ·Cómo insertar una pausa En Dogtail en Python 
    ·Cómo pasar una función como argumento en Python 
    ·Tipos enumerados en Python 
    ·Cómo añadir CRLF a una cadena en Python 
    ·Cómo leer un archivo CSV en Python 
      Artículos destacados
    ·¿Cuál es la diferencia entre las variables locales y …
    ·¿Qué son las terminologías de Visual Basic 
    ·Cómo encontrar el resto C 
    ·Cómo restablecer la retención en MATLAB 
    ·Cómo mejorar la escritura lógica en Java 
    ·Cómo abrir un archivo en Visual Basic 
    ·Nested Tabla Tutorial HTML 
    ·Cómo quitar Liderazgo y final de espacios en PHP 
    ·Cómo detectar Unicode de caracteres internacionales en…
    ·Cómo cambiar un índice desplegable en JavaScript 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com