Como implementar mesclagem de classificação em C ++ com exemplos



Este artigo fornecerá a você um conhecimento detalhado e abrangente de Merge Sort em C ++, como funciona com exemplos.

Qual é o tipo de mesclagem? A classificação por mesclagem é um algoritmo de classificação baseado em comparação que pertence à categoria dividir para conquistar. A classificação de mesclagem é usada para classificar uma matriz com base na estratégia de divisão e conquista, que será abordada brevemente neste artigo junto com outros conceitos, como seu algoritmo com um exemplo. Também veremos a complexidade de tempo da classificação de mesclagem em C ++

As dicas a seguir serão abordadas neste artigo,





Continuando com este artigo sobre Mesclar classificação em C ++

Algoritmo de divisão e conquista

Se você já está familiarizado com o funcionamento do quicksort, deve estar ciente da estratégia de dividir para conquistar. Dividir para conquistar envolve três etapas principais. Para entender essas etapas, vamos considerar um array Hello [] tendo o índice inicial ‘a’ e o índice final ‘n’, portanto, podemos escrever nosso array da seguinte maneira Hello [a & hellip..n]



Dividir- O movimento principal ou a etapa principal de dividir e conquistar é dividir o problema em subproblemas ou subpartes. O problema aqui é que os subproblemas devem ser semelhantes ao problema original e menores em tamanho. No nosso caso, vamos dividir nosso array em 2 metades [a & hellip.m] [m + 1 & hellip..n] m fica no meio do índice a e n

Conquiste - Quando terminarmos de dividir nosso problema em subproblemas. Resolvemos esses subproblemas recursivamente.

Tutorial do mysql workbench para iniciantes

Combine- Nesta etapa, combinamos todas as soluções de nossos subproblemas de forma adequada. Em outras palavras, combinamos 2 matrizes classificadas diferentes para formar uma matriz classificada. Lá temos nosso array ordenado.



Continuando com este artigo sobre Mesclar classificação em C ++

Compreendendo o algoritmo de mesclagem de classificação com um exemplo

Neste ponto, sabemos qual abordagem será usada pela classificação de mesclagem. Então, vamos considerar um exemplo e passar por cada etapa de Hello [] não classificado para uma matriz classificada.
Exemplo- Olá [10, 3, 7, 1, 15, 14, 9, 22]

Merge-sort-in-C++

Na imagem acima, consideramos uma matriz não classificada e usamos a classificação por mesclagem para obter uma matriz classificada. Agora, vamos dar uma olhada em cada etapa e entender todo o algoritmo

1. Primeiro, consideramos um array Hello [10, 3, 7, 1, 15, 14, 9, 22] neste array há um total de 8 elementos

2. Como vimos anteriormente, a classificação por mesclagem usa a abordagem de divisão e conquista para classificar os elementos. Encontramos m que fica no meio de nosso array e dividimos nosso array do meio, onde m = (a - n) / 2 'a' é o índice do elemento mais à esquerda en é o índice do elemento mais à direita de nosso array .

melhor ide para desenvolvimento java

3. Após a primeira divisão, temos 2 partes constituídas por 4 elementos cada. Vejamos a primeira metade [10, 3, 7, 1].

4. Dividimos [10, 3, 7, 1] em 2 partes [10, 3] e [7, 1]. Depois disso, nós os dividimos em [10], [3], [7], [1]. Mais divisão não é possível, pois não podemos calcular m. uma lista contendo um único elemento é sempre considerada classificada.

5. Como ocorre a fusão? Vamos descobrir. Primeiro [10] e [3] são comparados e mesclados em ordem crescente [3, 10] da mesma forma que obtemos [1, 7]

6. Depois disso, comparamos [3, 10] e [1, 7]. Uma vez comparados, nós os mesclamos em ordem crescente e obtemos [1, 3, 7, 10].

7. [15, 14, 9, 2] também é dividido e combinado de maneira semelhante para formar [9, 14, 15, 22].

8. Na última etapa, comparamos e combinamos [15, 14, 9, 2] [9, 14, 15, 22] para nos dar nossa matriz classificadaou seja, [1, 3, 7, 9, 10, 14, 15, 22].

Continuando com este artigo sobre Merge Sort em C ++

Pseudocódigo para mesclagem de classificação

Comece se sair

A função mergeSort () chama a si mesma recursivamente para dividir nosso array até que se torne um único elemento e a função merge () é usada para mesclar os arrays classificados.

Continuando com este artigo sobre Mesclar classificação em C ++

como se tornar um desenvolvedor de tableau

Mesclar programa de classificação em C ++

#include #include #include using namespace std void merge (int a [], int Firstindex, int m, int Lastindex) // mescla os subarrays que são criados enquanto a divisão void mergeSort (int a [], int Firstindex, int Lastindex) {if (Firstindex)tamanho int Olá [tamanho], i cout<<'Enter the elements of the array one by one:n' for(i=0 i>Hello [i] mergeSort (Hello, 0, size - 1) cout<<'The Sorted List isn' for(i=0 i

Resultado-

Continuando com este artigo sobre Mesclar classificação em C ++

Complexidade de tempo

A complexidade do tempo é um aspecto importante a ser considerado quando falamos sobre algoritmos. A classificação de mesclagem é considerada como tendo grande complexidade de tempo em comparação com outros algoritmos de classificação.

Pior caso de tempo de execução - O (n log n)
Melhor caso, tempo de execução - O (n log n)
Tempo médio de execução - O (n log n)

Com isso, chegamos ao fim deste artigo Merge Sort in C ++. Se você deseja saber mais, confira o pela Edureka, uma empresa de aprendizagem online confiável. O curso de certificação e treinamento em Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para conceitos básicos quanto avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.