Na programação Java, pode haver casos em que o desenvolvedor precisa classificar as entradas em massa. Por exemplo, organizar ou analisar os valores gerados aleatoriamente. Nesses casos, o “mesclar classificar”Em Java, é eficaz e mais rápido, consumindo menos tempo para classificar as entradas ou listas mais longas em comparação com outros algoritmos I.e., ““Tipo de bolha”.
Este blog elaborará a implementação do algoritmo "Merge Sort" em Java.
Como implementar um "tipo de mesclagem" em java?
O "mesclar classificar"É baseado no"dividir e conquistar”Algoritmo de modo que a matriz seja dividida em metades iguais e depois subdividida até que a divisão não possa mais ser feita. Depois que a matriz é subdividida, ela é mesclada novamente com base nos elementos de uma maneira classificada (ascendente).
Demonstração do algoritmo de "classificação de mesclagem"
Vamos ver o código fornecido abaixo para entender o conceito discutido:
classe pública Mergesort
public static void MergedArray (int [] leftArray, int [] RightArray, int [] FinalArray, int leftArraySize, int sightraySize)
int item = 0, esquerda = 0, direita = 0;
enquanto (esquerdaIf (LeftArray [à esquerda] finalArray [Item ++] = LeftArray [esquerda ++];
outro
finalArray [Item ++] = RightArray [Right ++];
enquanto (esquerdafinalArray [Item ++] = LeftArray [esquerda ++];
enquanto (certofinalArray [Item ++] = RightArray [Right ++];
No código acima alocado para fusão, aplique as seguintes etapas:
Implementação
Agora, vamos para o seguinte trecho de código:
public static void dividearray (int [] matriz, int length)
if (comprimento < 2)return;
int div = comprimento / 2;
int [] Larray = new int [div];
int [] rarray = new int [comprimento-DIV];
int temp = 0;
para (int i = 0; iif (ilarray [i] = matriz [i];
outro
rarray [temp] = matriz [i];
temp = temp+1;
Dividearray (Larray, div);
Dividearray (Rarray, comprimento-div);
MergedArray (Larray, Rarray, Array, Div, Length-Div);
Neste código implementado para dividir a matriz aprovada, execute as etapas abaixo fornecidas:
Implementação
Agora, visão geral “principal”Código:
public static void main (string args [])
int [] MurgesorTArray = 30, 12, 46, 6, 17, 23;
Dividearray (MergesortArray, MergesortArray.comprimento);
para (int i = 0; i< mergesortArray.length;++i)
Sistema.fora.impressão (MergesorTArray [i]+ "");
No "principal”, Aplique as seguintes etapas:
Implementação
Código inteiro
classe pública Mergesort
public static void MergedArray (int [] leftArray, int [] RightArray, int [] FinalArray, int leftArraySize, int sightraySize)
int item = 0, esquerda = 0, direita = 0;
enquanto (esquerdaIf (LeftArray [à esquerda] finalArray [Item ++] = LeftArray [esquerda ++];
outro
finalArray [Item ++] = RightArray [Right ++];
enquanto (esquerdafinalArray [Item ++] = LeftArray [esquerda ++];
enquanto (certofinalArray [Item ++] = RightArray [Right ++];
public static void dividearray (int [] matriz, int length)
if (comprimento < 2)return;
int div = comprimento / 2;
int [] Larray = new int [div];
int [] rarray = new int [comprimento-DIV];
int temp = 0;
para (int i = 0; iif (ilarray [i] = matriz [i];
outro
rarray [temp] = matriz [i];
temp = temp+1;
Dividearray (Larray, div);
Dividearray (Rarray, comprimento-div);
MergedArray (Larray, Rarray, Array, Div, Length-Div);
public static void main (string args [])
int [] MurgesorTArray = 30, 12, 46, 6, 17, 23;
Dividearray (MergesortArray, MergesortArray.comprimento);
para (int i = 0; i< mergesortArray.length;++i)
Sistema.fora.impressão (MergesorTArray [i]+ "");
Saída
Nesta saída, pode estar implícito que a matriz passada é classificada adequadamente.
Conclusão
O tipo de mesclagem é baseado no “dividir e conquistarAlgoritmo de modo que a matriz seja subdividida em metades iguais e mesclada novamente com base nos elementos classificados. O resultado do algoritmo é buscado de acordo com o original de uma maneira classificada. Este blog discutiu a implementação do algoritmo de classificação de mesclagem em java.