Em Java, a classificação organiza valores em ordem descendente ou ascendente. Matrizes são a estrutura de dados mais simples que contém um tipo semelhante de dados armazenados em um local de memória contígua. Seus elementos podem ser acessados diretamente usando os números de índice. Nas matrizes, os índices começam com 0. Em vez do predefinido “organizar()”Método, também existem vários outros métodos que podem ser usados para classificar matrizes.
Este artigo explicará os outros procedimentos para classificar as matrizes sem utilizar o método Sort ().
Como classificar uma matriz em java sem usar o método stor ()?
Para classificar uma matriz em java sem o “organizar()”Método, você pode usar:
Vamos discutir esses métodos de classificação e como eles classificam elementos de uma matriz.
Método 1: Classificação da matriz usando o tipo de seleção
Encontrar o mínimo elemento da matriz e inseri -lo no início da matriz é o que a seleção faz. É o algoritmo de classificação mais básico usado para comparações no local. Este algoritmo separa a matriz na parte classificada e não classificada.
A parte não classificada da matriz mantém a matriz especificada enquanto a parte classificada está inicialmente vazia. A parte classificada está no início da matriz, enquanto a outra parte da matriz está do outro lado. O primeiro elemento menor da matriz não classificado é então selecionado e colocado no início da matriz, que é a parte da matriz classificada. Depois disso, o segundo menor elemento é escolhido e colocado no segundo slot. O processo será repetido até que a matriz seja completamente classificada.
Considere o exemplo a seguir para entender o conceito declarado mais claramente.
Exemplo
Neste exemplo, criamos uma matriz do tipo inteiro chamada “variedade”Inicializado com os seguintes valores:
int [] array = new int [] 3,12,4,67,23,14,89,5;
Vamos criar uma variável do tipo inteiro “índice”Isso armazenará os índices da matriz, inicializados com“-1”Porque o índice de matriz começa a partir de 0, então no loop ele armazenará“0Índice:
int index = -1;
Aqui, usaremos dois “para”Loops, um será usado para iterar a matriz até que a duração da matriz e a segunda seja usada para verificar a condição e trocar os elementos se o 1º elemento for menor que o segundo:
para (int i = 0; iíndice = i;
para (int j = i; j <= array.length-1; j++)
if (matriz [j] < array[index])
índice = j;
int temp = matriz [i];
Array [i] = Array [index];
Array [índice] = temp;
Em seguida, imprima a matriz classificada usando outro “para" laço:
para (int i = 0; i < array.length; i++)
Sistema.fora.impressão (matriz [i] + ",");
A saída indica que a matriz agora está classificada em ordem ascendente:
Observação: Se você deseja imprimir a matriz em ordem decrescente como uma forma classificada, você só precisa reverter a condição IF para trocar os elementos.
Método 2: Classificação da matriz usando o tipo de inserção
Outro método de classificação simples usado para classificar uma matriz é a espécie de inserção. O tipo de inserção é um breve algoritmo de classificação que opera como você organizaria cartas de jogo em suas mãos. É eficaz quando aplicado a alguns valores. O tipo de inserção é adaptável e é adequado para conjuntos de dados parcialmente classificados.
Classificados e não classificados são as subcategorias da matriz no tipo de inserção. Em contraste com a classificação da seleção, o tipo de inserção escolhe valores do valor não classificado e os insere na parte classificada em um índice específico. No tipo de inserção, o valor atual é comparado ao elemento existente. Se encontrar um elemento existente maior que o atual, o elemento anterior será movido para a próxima posição.
Exemplo
Agora, vamos resolver o mesmo “variedade”Usando o tipo de inserção. Para fazer isso, iremos iterar a matriz até o seu comprimento usando o “para" laço. Vamos começar o loop do “1Índice. Então, definiremos o valor da chave como “valor chave”E atribua o elemento da matriz no 1º índice.
O adicionado “enquanto”O loop verificará os elementos de uma matriz comparando -a com o KeyValue e trocando os elementos. O loop enquanto continua a subir até que a condição seja avaliada como falsa. Se a chave for maior que o elemento anterior, troca os dois elementos:
para (int i = 1; i < array.length; i++)
int keyvalue = matriz [i];
int j = i - 1;
while (j> = 0 && Array [j]> keyvalue)
matriz [j + 1] = matriz [j];
j = j - 1;
matriz [j + 1] = keyvalue;
Para imprimir uma matriz classificada, usaremos outro “para" laço:
para (int i = 0; i < array.length; i++)
Sistema.fora.impressão (matriz [i] + ",");
Saída
Método 3: Classificação da matriz usando o tipo de bolha
O tipo de bolha verifica dois elementos próximos e os troca até que estejam na ordem desejada. É chamado “Tipo de bolha”Porque todo elemento da matriz se move para o final da matriz em cada iteração, como as bolhas de ar continuam subindo para o topo da água. É adequado apenas para menos elementos devido à sua alta complexidade média e no pior dos casos.
Em Bubble Sort, compararemos o primeiro e o segundo elementos que começam com o primeiro índice. Se o primeiro elemento da matriz for maior, troque o primeiro e o segundo elementos. Depois disso, ele realizará uma comparação entre os próximos dois elementos. Se eles não estiverem presentes na ordem especificada, esse método de classificação os trocará.
Exemplo
Usaremos o tipo Bubble para organizar a matriz neste exemplo. Como na classificação de seleção, dois loops são usados para classificar os elementos. Um é para itetar a matriz até seu comprimento, e o segundo loop é usado para verificar elementos e trocá -los com base nas condições:
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 = matriz [i];
Array [i] = Array [J];
matriz [j] = temp;
Para imprimir matrizes trocadas, usaremos o “para" laço:
para (int i = 0; i < array.length; i++)
Sistema.fora.impressão (matriz [i] + ",");
Saída
Observação: Se você deseja imprimir a matriz em ordem decrescente usando o método de classificação de bolhas, você só precisa reverter a condição adicionada se.
Oferecemos todos os métodos de classificação para classificar matrizes sem usar o método predefinido de classificação ().
Conclusão
Para classificar uma matriz sem usar o método Sort () em Java, você pode usar os métodos de classificação simples, incluindo classificação de seleção, tipo de inserção e tipo de bolha. Tudo isso é os métodos de classificação mais simples e eficientes. Mais especificamente, o tipo de inserção é utilizado quando você deseja inserir um elemento em um determinado índice. Todos os métodos fornecidos podem ser usados para classificar uma matriz em ordem descendente ou ascendente.