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. mmmm como ejecuto ese programa?????

    ResponderEliminar
  3. 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
  4. 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
  5. 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
  6. 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
  7. Esta es una invitación abierta para que todos ustedes formen parte de la organización más grande del mundo y lleguen a la cima de su carrera. A medida que comienza el programador de reclutamiento de este año y nuestra fiesta anual de cosecha está casi a la mano. El Gran Maestro nos dio el mandato de llegar siempre a personas como usted, así que aproveche esta oportunidad y únase a la gran organización Illuminati, únase a nuestra unidad global. Trae a los pobres, necesitados y talentosos a
    La prominencia de la fama y la riqueza. Obtenga dinero, fama, poderes, seguridad, consiga.
    reconocido en su negocio, carrera política, ascienda a lo más alto en lo que sea que haga, sea
    ¡Protegido espiritual y físicamente! Todo esto lo lograrás en
    un brillo de ojos

    Los Illuminati no tienen asociación con el satanismo, el luciferismo o ninguna religión. Si bien nuestros miembros individuales pueden seguir a cualquier deidad que elijan, operamos únicamente para el beneficio y la protección de la especie humana.

    ¿Aceptas ser miembro de este nuevo orden mundial de los Illuminati?
    Llamada y WhatsApp +19735567426
    📩 carlosmacdonald234@gmail.com

    ResponderEliminar

Publicar un comentario

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

Entradas populares de este blog

Autocompletado de codigo en Sublime Text

Compilar y ejecutar JAVA desde Sublime Text

Compilar y ejecutar JAVA desde Notepad++