“Conocimientos Programación>Programación Java

Combinar Clasificar en el Código Java

2013/1/21
Clasificación de listas de datos se presenta uno de los problemas más difíciles para los programadores , ya que es difícil de conceptualizar e implementar algoritmos de ordenación eficientes en lenguajes de programación . Clasificación requiere considerable copiar, mover y lectura de datos para trabajar . En consecuencia , los programadores se centran en el desarrollo de algoritmos de ordenación eficientes y genérico . Uno de ellos, el tipo de combinación , trabaja dividiendo una lista de valores de una y otra forma recursiva para " dividir y conquistar " el problema. Como una especie de combinación está pensado como una solución genérica , la mayoría de los lenguajes , como Java , tienen maneras de implementarlo. Combinar Clase

Una fusión especie tiene una lista para ser ordenados y recursiva divide la lista hasta llegar a valores individuales , como los números individuales. La especie se recombina los números de forma ordenada , el tiempo de regresar una lista ordenada . Una clase de la clasificación básica en Java que contendrá una lista para ordenar, y llamar a una función principal de combinación de clasificación que define :
clase

Merge {

public int [ ] x;

public static void main ( String [] args ) {

x = [ 5 , 6 , 3 , 4 , 7 , 8 , 10 , 2 ] ;

mergesort (x, 0 , x . length-1 ) ;

} }
Merge Ordenar función

Fuera de la clase principal residirá una función de ordenación de combinación. Esta función segmentos de un rango de números para ordenar la lista. Inicialmente , esta gama representará toda la lista, pero como el tipo de mezcla continua , tendrá sólo la mitad de la lista hasta llegar a las entradas individuales. Entonces , la función de clasificación de combinación se recombinar los elementos en grandes listas que se ordenan (Fuente 2 ) :

public void mergesort (bajo int , int hi ) {

if ( bajo < hi ) { int medio = (bajo + alta ) /2 ; mergesort (bajo, medio) ; mergesort ( media + 1 , hi ), merge (baja, media, alta ) ;} }

Basic Merge función

La función de fusión combinará dos listas después de clasificarlos . Si la función recibe los elementos individuales , ordenará ellos. De lo contrario, tendrá dos listas separadas , y en función de los deseos de la orden del programador en orden ascendente o descendente :

private void combinación ( int , int media baja , int hi ) {
< p > int [ ] = new int copia [ x.length - 1 ] ;

//Copiar las dos partes en la matriz helper for (int i = Baja ; i < = hi , i + + ) { copia [ i ] = x [ i ] ;}

int i = Baja ; int j = media + 1 ; int k = bajo ; while ( i < = mediados && j < = hi ) {if ( copia [ i ] < = copia [ j ] ) { x [ k ] = copia [ i]; i + + ;} else { x [ k ] = copia [ j ], j + + ;} k + + ;} //Copiar el resto del lado izquierdo de la matriz en la matriz de destino while ( i < = centro ) { x [ k ] = copia [ i ], k + + , i + + ;} }



Combinar Ordenar Recurse

la función " mergesort " divide de forma recursiva la lista. En primer lugar , se subdivide la lista original en medio de cada vez que se llama a sí mismo de forma recursiva. Cuando la recursividad alcanza un solo dígito , la función y luego retrocede y comienza a ordenar la lista. Cada vez que la función da marcha atrás a una llamada a la función anterior , se une las dos mitades de una lista más pequeña , con el tiempo de trabajo de nuevo a la lista completa. La función " merge " parece hacer todo el trabajo por la organización y la copia de los valores en la lista, pero el corazón de una fusión especie se encuentra en la función engañosamente simple " mergesort " .


Programación Java
Cómo reemplazar una pelota botando con un pájaro que despide en Java
Cómo dibujar una esfera en Java
Los beneficios de JDK 1.6
Ayuda con archivos secuenciales en Java Programación
Cómo hacer que el primer carácter de una cadena en mayúsculas en Java
Cómo convertir de Java para PHP
Cómo importar otra clase en Java Usando jGRASP
Cómo hacer un formulario en JSP
Conocimientos Informáticos © http://www.ordenador.online