Ordene un array en Java sin usar el método sort()

Haider Ali 12 octubre 2023
  1. Ordene un array en Java sin usar el método sort() - Bubble Sort
  2. Ordenar un array en Java sin usar el método sort() - Ordenar por selección
  3. Ordene un array en Java sin usar el método sort() - Ordenación por inserción
Ordene un array en Java sin usar el método sort()

Esta guía nos enseñará a ordenar un array en Java sin usar el método sort(). En general, hay tres formas de ordenar un array. Estos tres algoritmos son bastante eficientes para clasificar cualquier arreglo. Aprendamos más sobre estos algoritmos.

Ordene un array en Java sin usar el método sort() - Bubble Sort

Entendamos el concepto de clasificación de burbujas, que es el algoritmo de clasificación más simple. Básicamente, en este algoritmo, intercambias repetidamente los elementos adyacentes en el array. Si están en el orden incorrecto, el algoritmo intercambiará los dos elementos. Eche un vistazo a la presentación.

Ordene un array en Java sin usar el método sort() - Bubble Sort

Si observa la imagen proporcionada arriba, puede ver el intercambio de los dos elementos adyacentes. Al final, tenemos el array ordenada. Si hay alguna confusión, eche un vistazo al código de este algoritmo de clasificación de burbujas.

public class Main {
  public static void main(String[] args) {
    int[] arr = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    // Example Array To sort...
    for (int i = 0; i < arr.length; i++) { // Loop over java Array  outer Loop use
      for (int j = i + 1; j < arr.length; j++) { // Loop over java array
        int tmp = 0; // tempraory variable in order to compare.
        if (arr[i] > arr[j]) { // compare outer loop object with inner loop
          tmp = arr[i]; // if greater than swapping.
          arr[i] = arr[j]; // Swaping code here.
          arr[j] = tmp;
        }
      }
    }
    // After Sorting Printing The Value.............

    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

Producción :

3
4
5
8
32
95
172
564
754
768
859
1500

El bucle externo es solo para pasar sobre el array, mientras que el bucle interno intercambia los elementos adyacentes desordenados en cada pasada. Al final de la última pasada, nos queda el array ordenada.

Ordenar un array en Java sin usar el método sort() - Ordenar por selección

El algoritmo de clasificación de selección funciona buscando el elemento mínimo en un array y colocándolo al comienzo de dicha matriz. Con cada pasada, buscamos el siguiente elemento más pequeño y lo colocamos a continuación. Finalmente, obtenemos un array con dos submatrices. Una submatriz es un array ordenada que se encuentra al principio del array. La otra submatriz no está clasificada.

En cada pasada, nos movemos en orden ascendente. Si tuviéramos que encontrar el elemento más grande primero, lo moveríamos en orden descendente. Eche un vistazo a la ilustración a continuación.

Ordene un array en Java sin usar el método sort() - Ordenar por selección

En la ilustración anterior, el movimiento está en orden descendente, y buscamos los elementos más grandes primero y los colocamos al final. La presentación muestra el array dividida en dos submatrices, como se explicó anteriormente.

public class Main {
  public static void main(String[] args) {
    int[] arr1 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int small = -1; // at start there is no small  number....
    for (int i = 0; i < arr1.length; i++) {
      small = i;
      for (int j = i; j <= arr1.length - 1; j++) {
        if (arr1[j] < arr1[small]) {
          small = j;
        }
        // swap values
      }
      int temp = arr1[i];
      arr1[i] = arr1[small];
      arr1[small] = temp;
    }

    for (int i = 0; i < arr1.length; i++) {
      System.out.println(arr1[i]);
    }
  }
}

En el ejemplo de código anterior, el bucle externo funciona como si pasara por encima del array. Los bucles internos intercambian el elemento más pequeño con el elemento del índice actual.

Ordene un array en Java sin usar el método sort() - Ordenación por inserción

La ordenación por inserción es otro algoritmo de ordenación simple que podemos usar para ordenar un array. En este algoritmo, el array dada también se divide en dos submatrices. Pero a diferencia de la ordenación por selección, el elemento se elige de la submatriz sin clasificar y se coloca en su posición correcta. Eche un vistazo a la explicación de la imagen a continuación.

Ordene un array en Java sin usar el método sort() - Ordenación por inserción

Como puede ver, no se intercambia entre los elementos adyacentes. Es simplemente encontrar el elemento más pequeño y colocarlo en su posición correcta. Iteramos desde el primer elemento y avanzamos hacia el final. El elemento se compara con su predecesor y luego con el elemento contiguo hasta que encuentran su lugar correcto. En el ejemplo que se proporcionó, puede ver que 2 se compara cuatro veces antes de colocarlo en la posición correcta. Aquí está el ejemplo de código.

public class Main {
  public static void main(String[] args) { // Insertion Sort....
    int[] arr2 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int number = arr2.length;
    for (int a = 1; a < number; a++) {
      int keyValue = arr2[a];
      int b = a - 1;
      while (b >= 0 && arr2[b] > keyValue) {
        arr2[b + 1] = arr2[b];
        b = b - 1;
      }
      arr2[b + 1] = keyValue;
    }
    // printing inserion sort............................
    for (int i = 0; i < arr2.length; i++) {
      System.out.println(arr2[i]);
    }
  }
}

Estos son los tres métodos que puede utilizar para ordenar un array en Java sin utilizar la función de ordenación.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Artículo relacionado - Java Sort

Artículo relacionado - Java Array