Como ordenar matriz em Java
Ordenar uma matriz em Java pode ser útil em várias situações, como organizar dados antes de apresentá-los ou melhorar a performance em algoritmos de busca. Neste post, veremos como ordenar matriz em Java, sendo unidimensionais (vetores) e bidimensionais (matrizes 2D) usando a classe Arrays
e métodos personalizados.
Passo 1: Ordenando uma matriz unidimensional (Vetor)
Para ordenar uma matriz unidimensional, use o método Arrays.sort()
. Esse método organiza os elementos em ordem crescente automaticamente.
import java.util.Arrays;
public class OrdenarMatriz {
public static void main(String[] args) {
int[] matriz = {5, 3, 8, 1, 9};
Arrays.sort(matriz); // Ordena o vetor
System.out.println("Matriz ordenada: " + Arrays.toString(matriz));
}
}
Saída:
Matriz ordenada: [1, 3, 5, 8, 9]
Passo 2: Ordenando uma matriz bidimensional (2D)
Para ordenar uma matriz bidimensional, ou seja, uma tabela de dados, você pode ordenar as linhas individualmente ou aplicar uma lógica de ordenação personalizada para a matriz completa.
Exemplo 1: Ordenando cada linha individualmente
import java.util.Arrays;
public class OrdenarMatriz2D {
public static void main(String[] args) {
int[][] matriz = {
{3, 5, 1},
{8, 9, 2},
{4, 7, 6}
};
for (int[] linha : matriz) {
Arrays.sort(linha);
}
System.out.println("Matriz 2D ordenada por linha:");
for (int[] linha : matriz) {
System.out.println(Arrays.toString(linha));
}
}
}
Saída:
Matriz 2D ordenada por linha:
[1, 3, 5]
[2, 8, 9]
[4, 6, 7]
Exemplo 2: Ordenando a matriz inteira em ordem crescente
Para ordenar todos os elementos da matriz em ordem crescente, transforme-a em uma lista unidimensional, ordene-a e retorne-a para uma matriz bidimensional:
import java.util.Arrays;
public class OrdenarMatrizCompleta {
public static void main(String[] args) {
int[][] matriz = {
{3, 5, 1},
{8, 9, 2},
{4, 7, 6}
};
int linhas = matriz.length;
int colunas = matriz[0].length;
int[] temp = new int[linhas * colunas];
// Copia elementos da matriz 2D para um vetor 1D
int index = 0;
for (int[] linha : matriz) {
for (int elemento : linha) {
temp[index++] = elemento;
}
}
Arrays.sort(temp); // Ordena o vetor 1D
// Recoloca os elementos na matriz 2D
index = 0;
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
matriz[i][j] = temp[index++];
}
}
System.out.println("Matriz 2D ordenada completamente:");
for (int[] linha : matriz) {
System.out.println(Arrays.toString(linha));
}
}
}
Saída:
Matriz 2D ordenada completamente:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
Java oferece várias formas de ordenar matrizes, e o método Arrays.sort()
facilita bastante a ordenação de matrizes unidimensionais. No caso de matrizes 2D, é possível ordenar linha por linha ou a matriz inteira, dependendo da necessidade.
Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.
Clique na imagem abaixo e conheça mais detalhes do nosso curso:
Dúvidas ou sugestões sobre como ordenar matriz em Java? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Sobre o Autor
0 Comentários