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 O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

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:

CLIQUE AQUI E SAIBA MAIS

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

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *