Como funciona a classificação da mesclagem
Agora, entenderemos o funcionamento da fusão com a ajuda de um exemplo:
Vamos considerar outro exemplo para a fusão, onde temos um total de sete (ímpares) elementos em uma matriz e nós os classificaremos em ordem crescente:
[5, 7, 1, 4, 6, 3, 2]Divida a matriz em dois sub-maiores
[5, 7, 1] e [4, 6, 3, 2]Novamente, cada matriz será dividida em dois subarrays
[5], [7, 1] e [4, 6], [3, 2]Aqui em cada quatro sub-maiores, uma sub-matriz tem apenas um elemento, mas as outras três matrizes ainda têm mais de um elemento, então dividiremos ainda mais cada uma dessas matrizes em duas matrizes.
[5], [7], [1], [4], [6], [3], [2]Agora o primeiro passo está completo, pois cada matriz tem apenas um item. Agora vamos comparar os elementos da matriz e mesclar essas matrizes de itens únicos em pares.
[5, 7], [1, 4], [3, 6], [2]Fazemos uma comparação entre os elementos da matriz das duas primeiras matrizes e as duas últimas matrizes e mudamos os valores menores para o lado esquerdo e maiores valores para o lado direito.
Uma comparação entre os elementos das duas primeiras matrizes e as segundas duas matrizes será conduzida. Por exemplo, as duas primeiras matrizes são [5,7] e [1,4]. 5 será em primeiro lugar comparado a 1 e depois com 4. Posteriormente, o segundo elemento 7 passará pelo mesmo procedimento e a matriz resultante será [1,4,5,7]. Agora vamos lidar com as duas últimas matrizes que são [3,6] e [2]. Após a comparação, a matriz que obtemos será [2,3,6].
[1, 4, 5, 7] [2, 3, 6]Agora temos duas matrizes; [1,4,5,7] e [2,3,6]. Vamos chamá -los Arraya [1,4,5,7] e Arrayb [2,3,6] respectivamente.
Primeiro de tudo, o primeiro elemento “1" de Arraya será comparado ao segundo elemento “2" de Arrayb e o número menor “1”Será armazenado na nova matriz classificada
[1]Na próxima iteração, “2”Será comparado com o próximo elemento“4" de Arraya. O menor “2”Será armazenado na nova matriz classificada.
[1,2]Desta vez, "4" de Arraya será comparado ao próximo elemento "3" de Arrayb. Como "3" é menor, será inserido na nova matriz classificada.
[1,2,3]Este procedimento será feito com cada elemento de ambas as matrizes e, uma vez que todos os elementos forem comparados, a matriz resultante será; [1,2,3,4,5,6,7].
[1, 2, 3, 4, 5, 6, 7]Merge classificar em JavaScript
Como aprendemos como a classificação da mescla.
Crie uma função recursiva para dividir a matriz não classificada, nomeamos -a “merge_sort”. A função recursiva sempre tem um caso base para interromper o programa. Passamos a matriz não classificada para o “merge_sort”Função, e dentro desta função, encontramos o índice do meio da matriz dividindo o comprimento da matriz por 2. Além disso, utilizamos o método "Splice ()" para dividir a matriz em sub-maiores.
função Merge_sort (UnsortedArray)Agora, discutiremos o código para mesclar as duas matrizes divididas. Essas matrizes de divisão já estão classificadas na função "Merge_sort", e agora estamos mesclando -os no "MergearRays”Função.
Função MergearRays (LeftArray, RightArray)Na função acima mencionada, "LeftArray" e "RightArray" são as duas matrizes classificadas e estamos mesclando para obter uma única matriz classificada. Dois métodos são usados neste exemplo: o “empurrar()”Método para adicionar o valor no final da matriz classificada e o“mudança()”Método para excluir o valor selecionado da sub-matriz. Por fim, o console.O método log () é usado para testar a saída.
O trecho completo do código seria assim:
Função MergearRays (LeftArray, RightArray)Saída:
Conclusão:
Merge Sort divide uma lista em sub-listas e continua dividindo a lista até que uma sub-lista obtenha um único elemento, então ela mescla todas as sub-listas e produz uma nova lista classificada. Neste post, aprendemos o conceito de classificação de mescla. Também explicamos como o método de emenda, o método push e o método de mudança funciona em javascript.