Ordenar cualquier array de numeros en JAVA

Con esta código podremos ordenar cualquier array de números ya sean de tipo int, como en el ejemplo o de cualquier otro tipo como byte, short, long, float o double.
public static int[] ordenarArray(int[] n) {
    int aux;

    for (int i = 0; i < n.length - 1; i++) {
        for (int x = i + 1; x < n.length; x++) {
            if (n[x] < n[i]) {
                aux = n[i];
                n[i] = n[x];
                n[x] = aux;
            }
        }
    }

    return n;
}
Para ordenar un array un tipo diferente al del ejemplo, tan solo debemos cambiar los tipos de retorno, el del parámetro de entrada y el tipo de la variable aux presente en la función por el tipo del array a ordenar.

Comentarios

  1. Buen método Alejandro. Gracias por aportar a la comunidad Java.

    ResponderEliminar
  2. Pues simplemente tienes que crear un archivo donde estará la clase que contendrá el método, por ejemplo llámalo "Ordenar.java", y en él defines una clase con el mismo nombre que el fichero de la siguiente manera:
    public class Ordenar {
    //Los miembros de la clase como atributos o metodos
    }

    Y dentro de estas llaves metes la función de esta entrada, y ya podrás crear en el main un array, darle valores, llamar a este método pasándole el array desordenado, y después de esa llamada, tu array estará ordenado.

    Si tienes dudas iniciales, en este blog hay un manual de iniciación a Java, en la parte superior derecha de la web encontrarás el enlace llamado Guia Java.
    Saludos.

    ResponderEliminar
    Respuestas
    1. Oye disculpa, podrias ayudarme lo que pasa es que necesito un programa donde meta una cadena como por ejemplo "5980" me imprima este valor "0589" de forma ordenada la verdad no tengo mucha idea como lograrlo, este es el codigo que llevo en arrays, con el mismo codigo de este post! lo complete para poder ingresar valores al arreglo, por favor help!

      import java.util.Scanner;

      public class Autos {



      //*************************************************************

      public static int [] ordenarArray(int[] n) {
      int aux;

      for (int i = 0; i < n.length - 1; i++) {
      for (int x = i + 1; x < n.length; x++) {
      if (n[x] < n[i]) {
      aux = n[i];
      n[i] = n[x];
      n[x] = aux;
      }
      }
      }

      return n;
      }
      //*************************************

      public static void main (String [] args){

      //---------------------------------------------------
      Scanner lector = new Scanner (System.in);

      int lista[]=new int[20];

      int i,lim;

      System.out.println("Ingresa el limite... ");
      lim=lector.nextInt();

      for(i=0;i<lim;i++){
      System.out.println("X["+(i+1)+"]= ");
      lista[i]=lector.nextInt();
      }

      for(i=0;i<lim;i++){
      System.out.print(lista[i]+", ");
      }
      //----------------------------------------------------------
      lista[i].ordenarArray();
      System.out.println("si");

      }
      }

      Eliminar
  3. Disculpa este el método por inserción directa?

    ResponderEliminar
    Respuestas
    1. No, este seria un método de selección directa un tanto ineficiente, a su vez, para mi es el método más sencillo para ordenar y por eso lo puse en la entrada.

      El método de inserción directa consiste en insertar los elementos desde 1 hasta tamaño - 1 en su posición correcta, comprobando desde el elemento a insertar-1 hasta 0, desplazando los números mayor a este a la derecha.
      Saludos.

      Eliminar
  4. necesito ayuda necesito ordenar un arreglo desde el numero que aparesca en el centro del arreglo si es de 10 que empiece en el 5 ny despues aparescan lo9s demas

    ResponderEliminar
  5. Buenas necesito me colaboren con propblemita de vectores.como hago para unir dos vectores del mismo tamaño y luego crear otro vector y ordenarlo siendo los datos de tipo int

    ResponderEliminar

Publicar un comentario

Si tenéis alguna duda o sugerencia, no dudéis en comentar. ;)

Entradas populares de este blog

Calcular factorial de un numero en JAVA

Ordenar cualquier array con SORT en JAVA

Modificadores de acceso (public, protected y private) JAVA