ordenamiento por mezcla ayudaa urgente porfavor!!!

hola este es mi primer post en este foro y me a servido bastante e sacado mucha información saben que necesito ayuda tengo que hacer una tarea de ordenamiento por mezcla en java en la cual el usuario indique la cantidad del vector y ingrese los números por favor es mi ultima nota y me tengo que salvar desde ya muchas gracias a todos por su tiempo
miren tengo este codigo pero me falta solamente agregar el vector y los numeros aver si me pueden ayudar.

public class Mergesort
{

public static void main(String[ ] args)
{
final String BLANKS = " "; // A String of two blanks
int i; // Array index

int[ ] data = { 1000, 80, 10, 50, 70, 60, 90, 20, 30, 40, 0, -1000 };

// Print the array before sorting:
System.out.println("Aquí está la matriz original completo:");
for (i = 1; i < data.length-1; i++)
System.out.print(data[i] + BLANKS);
System.out.println( );

// Sort the numbers, and print the result with two blanks after each number.
mergesort(data, 1, data.length-2);
System.out.println("Aqui los muestro ordenados.");
System.out.println("Los números son:");
for (i = 1; i < data.length-1; i++)
System.out.print(data[i] + BLANKS);
System.out.println( );
}

public static void mergesort(int[ ] data, int first, int n)
{
int n1; // Size of the first half of the array
int n2; // Size of the second half of the array

if (n > 1)
{
// Compute sizes of the two halves
n1 = n / 2;
n2 = n - n1;

mergesort(data, first, n1); // Sort data[first] through data[first+n1-1]
mergesort(data, first + n1, n2); // Sort data[first+n1] to the end

// Merge the two sorted halves.
merge(data, first, n1, n2);
}
}

private static void merge(int[ ] data, int first, int n1, int n2)

{
int[ ] temp = new int[n1+n2]; // Allocate the temporary array
int copied = 0; // Number of elements copied from data to temp
int copied1 = 0; // Number copied from the first half of data
int copied2 = 0; // Number copied from the second half of data
int i; // Array index to copy from temp back into data

// Merge elements, copying from two halves of data to the temporary array.
while ((copied1 < n1) && (copied2 < n2))
{
if (data[first + copied1] < data[first + n1 + copied2])
temp[copied++] = data[first + (copied1++)];
else
temp[copied++] = data[first + n1 + (copied2++)];
}

// Copy any remaining entries in the left and right subarrays.
while (copied1 < n1)
temp[copied++] = data[first + (copied1++)];
while (copied2 < n2)
temp[copied++] = data[first + n1 + (copied2++)];

// Copy from temp back to the data array.
for (i = 0; i < n1+n2; i++)
data[first + i] = temp[i];
}

}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Uyy.. .espero que lo logres.

Uyy.. .espero que lo logres.

Por lo pronto, algo que te servirá toda la vida es hacer busquedas en google ( bueno si es que google dura toda la vida , ehm.. en fin )

Ordenamiento por mezcla:

http://www.google.com.mx/search?q=merge+sort+java

Leer la entrada del usuario:

http://www.google.com.mx/search?q=read+user+input+java

etc. etc, ya tienes la idea.

Si te surge algun problema intentando implementar algo de lo que encuentras puedes regresar y decirnos algo como: "Estoy escribiendo este código xyz, pero me sale el error ArrayIndexOutOfBoundsException"

Y así será más fácil ayudarte. Por lo pronto en google puedes encontrar muchisimo código con el cual iniciar.

Saludos.

mira arriva publique el codigo k tengo

arriva publique el codigo que tengo aver si me puedes echar una mano para ver que se puede hacer
gracias

Ejemplo de copy & paste

¿Copiaste el código o lo hiciste tú?.

Antes intenta hacer pequeños ejemplos de manejo de vectores y matrices. Tal vez asi encuentres la solución.

Pues ya casi lo tienes!!!

Pues ya casi lo tienes!!! Solo te hace falta con saber como leer los datos y listo.

En el segundo link ( http://www.google.com.mx/search?q=read+user+input+java ) hay un montón de ejemplos, toma alguno que use la clase java.util.Scanner. Crea un programa separado y cuando logres leer correctamente lo puedes mezclar ( que ironía ) en el programa principal.

Debe de ser algo como esto:

...
int tamaño  = scanner.nextInt();
int [] data = new int[ tamaño ];
for( int i  = 0 ; i < tamaño ; i++ ) {
   data[i] = scanner.nextInt();
}
...
// aqui data ya esta listo para ser usado....

O sea que estas a casi nada de lograrlo, ánimo!

no entiendoo

esk no entiendo como introducirlo en le codigoo
me podrias ayudar por faavorr he estado cabesiandome desde antes de ayer y no puedo armarloo

Como que como? Pueeees...

Como que como? Pueeees... primero entiendes lo que hace y luego lo escribes, no?

Por ejemplo el siguiente programa, lee n numeros:

import java.util.Scanner;
public class ReadInput { 
  public static void main( String [] args ) { 
    Scanner scanner = new Scanner(System.in);
    int size = scanner.nextInt();
    int [] data = new int[size];
    for( int i = 0 ; i < size ; i++ ) { 
      data[i] = scanner.nextInt();
    }
    mergeSort( data );
  }
  private static void mergeSort( int [] array ) {
  }
}

Y es básicamente lo mismo que escribí antes.

Copialo, escribelo en tu editor/ide, pruebalo, entiende lo que hace y lograras ponerlo todo junto.

Imagen de rodrigo salado anaya

Te mande...

un comentario pero al parecer ya soy SPAM... :'(..

Como lo mandaste o a quién se

Como lo mandaste o a quién se lo mandste?

Imagen de rodrigo salado anaya

@Oscar

Pues puse un comentario desde mi casa, y me salio un mensaje que dice algo así: tu IP se tacho como posible spamer y si no es spam, cuando alguien del javamexico core lo revise se publicara. Luego lo mismo me salio al querer poner esta incidencia en la parte de Bugs. :(