Como classificar uma matriz em java sem usar o método de classificação

Como classificar uma matriz em java sem usar o método de classificação

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:

  • Classificação de seleção
  • Classificação de inserção
  • Tipo de bolha

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.