Cómo ordenar una matriz en Java sin usar el método de clasificación

Cómo ordenar una matriz en Java sin usar el método de clasificación

En Java, la clasificación organiza valores en orden descendente o ascendente. Las matrices son la estructura de datos más simple que contiene un tipo similar de datos almacenados en una ubicación de memoria contigua. Se puede acceder a sus elementos directamente utilizando los números de índice. En matrices, los índices comienzan con 0. En lugar del predefinido "clasificar()"Método, también hay varios otros métodos que pueden usarse para clasificar las matrices.

Este artículo explicará los otros procedimientos para clasificar las matrices sin utilizar el método sort ().

Cómo ordenar una matriz en Java sin usar el método sort ()?

Para clasificar una matriz en Java sin el "clasificar()"Método, puede usar:

  • Clasificación de selección
  • Tipo de inserción
  • Ordenamiento de burbuja

Discutamos estos métodos de clasificación y cómo clasifican los elementos de una matriz.

Método 1: Matriz de clasificación utilizando el tipo de selección

Encontrar el elemento del menor matriz e insertarlo al comienzo de la matriz es lo que hace la selección. Es el algoritmo de clasificación más básico utilizado para las comparaciones en el lugar. Este algoritmo separa la matriz en la parte ordenada y sin clasificar.

La porción sin clasificar la matriz contiene la matriz especificada mientras la porción ordenada está inicialmente vacía. La parte ordenada está al comienzo de la matriz, mientras que la otra parte de la matriz está en el otro lado. El primer elemento más pequeño de la matriz sin clasificar se selecciona y se coloca al comienzo de la matriz, que es la parte de la matriz ordenada. Después de eso, el segundo elemento más pequeño se elige y se coloca en la segunda ranura. El proceso se repetirá hasta que la matriz se ordene por completo.

Considere el siguiente ejemplo para comprender el concepto declarado más claramente.

Ejemplo

En este ejemplo, hemos creado una matriz de tipo entero llamada "formación"Inicializado con los siguientes valores:

int [] array = new int [] 3,12,4,67,23,14,89,5;

Crearemos una variable de tipo entero "índice"Eso almacenará los índices de la matriz, inicializados con"-1"Porque el índice de matriz comienza desde 0, por lo que en el bucle se almacenará"0"Índice:

int index = -1;

Aquí, usaremos dos "paraBucles, uno se usará para iterar la matriz hasta que la longitud de la matriz y la segunda se use para verificar la condición y cambiar los elementos si el primer elemento es menor que el segundo:

para (int i = 0; i índice = i;
para (int j = i; j <= array.length-1; j++)
if (array [j] < array[index])
índice = j;


int temp = array [i];
matriz [i] = array [índice];
matriz [índice] = temp;

Luego, imprima la matriz ordenada usando otro "para" bucle:

para (int i = 0; i < array.length; i++)
Sistema.afuera.imprimir (matriz [i] + ",");

La salida indica que la matriz ahora se clasifica en orden ascendente:

Nota: Si desea imprimir la matriz en orden descendente como una forma ordenada, solo necesita revertir la condición IF para intercambiar los elementos.

Método 2: Matriz de clasificación utilizando el tipo de inserción

Otro método de clasificación simple utilizado para clasificar una matriz es el tipo de inserción. Sort de inserción es un breve algoritmo de clasificación que funciona como si organizaras las cartas de juego en tus manos. Es efectivo cuando se aplica a algunos valores. La clasificación de inserción es adaptativa y es adecuada para conjuntos de datos parcialmente ordenados.

Ordenadas y sin clasificar son las subcategorías de la matriz en orden de inserción. A diferencia del tipo de selección, la clasificación de inserción elige los valores del valor no organizado y los inserta en la parte ordenada en un índice particular. En el tipo de inserción, el valor actual se compara con el elemento existente. Si encuentra un elemento existente mayor que el actual, el elemento anterior se mueve a la siguiente posición.

Ejemplo

Ahora, clasificaremos lo mismo "formación"Usando el tipo de inserción. Para hacerlo, iteraremos la matriz hasta su longitud usando el "para" bucle. Comenzaremos el bucle desde el "1Índice. Luego, estableceremos el valor de la clave como "valor clave"Y asignarlo el elemento de la matriz en el primer índice.

El agregado "mientras"Loop verificará los elementos de una matriz comparándola con el keyvalue e intercambiando los elementos. El bucle mientras se continúa subiendo hasta que la condición se evalúa como falsa. Si la clave es mayor que el elemento anterior, entonces cambia ambos elementos:

para (int i = 1; i < array.length; i++)
int keyValue = array [i];
int j = i - 1;
while (j> = 0 && array [j]> keyValue)
matriz [j + 1] = array [j];
j = j - 1;

matriz [j + 1] = keyValue;

Para imprimir una matriz ordenada, usaremos otra "para" bucle:

para (int i = 0; i < array.length; i++)
Sistema.afuera.imprimir (matriz [i] + ",");

Producción

Método 3: Matriz de clasificación utilizando el tipo de burbuja

La clasificación de burbujas verifica dos elementos cercanos y los cambia hasta que estén en el orden deseado. Se llama "Ordenamiento de burbuja"Porque cada elemento de matriz se mueve al final de la matriz en cada iteración, al igual que cómo las burbujas de aire siguen subiendo a la parte superior del agua. Solo es adecuado para menos elementos debido a su alta complejidad de tiempo promedio y peor de los casos.

En el tipo de burbujas, compararemos el primer y segundo elemento que comienzan con el primer índice. Si el primer elemento de la matriz es mayor, cambie el primer y segundo elemento. Después de eso, realizará una comparación entre los próximos dos elementos. Si no están presentes en el orden especificado, este método de clasificación los cambiará.

Ejemplo

Usaremos el orden de burbujas para organizar la matriz en este ejemplo. Como en la clasificación de la selección, se utilizan dos bucles para ordenar los elementos. Uno es para iterar la matriz hasta su longitud, y el segundo bucle se usa para verificar elementos y cambiarlos en función de las condiciones:

para (int i = 0; i < array.length; i++)
para (int j = i + 1; j < array.length; j++)
int temp = 0;
if (array [i]> array [j])
temp = array [i];
matriz [i] = array [j];
matriz [j] = temp;


Para imprimir matrices intercambiadas, usaremos el "para" bucle:

para (int i = 0; i < array.length; i++)
Sistema.afuera.imprimir (matriz [i] + ",");

Producción

Nota: Si desea imprimir la matriz en orden descendente utilizando el método de clasificación de burbujas, solo necesita revertir la condición agregada si.

Ofrecimos todos los métodos de clasificación para clasificar matrices sin usar el método de sort () predefinido.

Conclusión

Para ordenar una matriz sin usar el método sort () en Java, puede usar los métodos de clasificación simples, incluidos los sortes de selección, el sort de inserción y el sort de burbujas. Todos estos son los métodos de clasificación más simples y eficientes. Más específicamente, el tipo de inserción se utiliza cuando desea insertar un elemento en cierto índice. Todos los métodos proporcionados se pueden usar para clasificar una matriz en orden descendente o ascendente.