Introdução à classificação em C ++

Tendo uma coleção de elementos para solicitar, a classificação ajuda a organizar os elementos no registro com base na relação de pedidos. Considere um registro de arquivo que contém muitas informações. Para acessar uma lista do registro, é necessário ter um campo-chave para apontar a localização atual do elemento. Por exemplo, considere uma lista de nomes no banco de dados, que pode ser classificada em ordem alfabética. A classificação colocou um papel importante no campo dos computadores e da tecnologia. Vamos ver mais neste artigo.

O que é a classificação em C ++?

Classificação é o conceito básico usado pelo programador ou pesquisador para classificar as entradas necessárias. A ordem da complexidade é dada por 0 (N * log (N)). A classificação de uma entrada facilita a solução de muitos problemas, como o elemento Pesquisa, Máximo e Mínimo. Embora uma classificação organize os dados na sequência, a eficiência do processo é muito importante, com base em dois critérios: - Tempo e memória necessários para executar a classificação nos dados fornecidos. O tempo é medido contando as comparações de chaves usadas. Existem muitos algoritmos disponíveis para classificação. Em geral, a classificação em C ++ é diferenciada em dois tipos:

  1. Classificação interna
  2. Classificação externa

Sintaxe e Exemplo

Sintaxe:

O C ++ usa a função interna sort () para seus algoritmos, para classificar os contêineres como vetores, matrizes.

Classificar (matriz, matriz + tamanho);

Exemplos:

#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)

Resultado:

Como funciona?

Para começar, usaremos a Classificação Rápida, que é considerada um método importante entre os vários tipos de classificação. A classificação básica de uma matriz adota uma abordagem Quicksort. Existem diferentes maneiras de implementar a classificação; o objetivo de cada uma dessas técnicas é o mesmo que comparar dois elementos e trocá-los pela variável temporária. Neste artigo, discutiremos a classificação mais importante usada para implementação. A seguir estão:

  1. Tipo de bolha
  2. Classificação de inserção
  3. Ordenação rápida
  4. Classificação da seleção

Existem Merge Sort, Radix Sort, Tape Sorting que discutiremos mais adiante. Primeiro, iremos com o tipo Bubble.

1. Classificação por bolhas

A classificação por bolhas é um dos métodos mais simples de classificação que podemos usar para aplicativos. Nesta técnica, trocas sucessivas são feitas através dos registros a serem classificados. Em cada etapa, ele compara a chave com os dados e troca os elementos, se não na ordem desejada. A classificação é feita com os elementos adjacentes no momento em que apenas um elemento é colocado no local classificado após uma troca.

Exemplo: Vamos considerar uma matriz não classificada A () = (6, 2, 4, 7, 1)

62471
A (0)A (1)A (2)A (3)A (4)

Etapa 1: Comparando A (0)> A (1), se a condição for verdadeira, troque o elemento (6> 2) true, coloque 2 em A (0). Da mesma forma, todas as etapas seguem as mesmas até que a matriz seja classificada.

Agora a matriz é A () = (2, 6, 4, 7, 1)

Etapa 2: 6 é comparada com 4. Como 6 é maior que 4. Portanto, 6 e 4 são trocados.

Agora a matriz é A () = (2, 4, 6, 7, 1)

Etapa 3: o elemento 6 é comparado com 7. Como 6 <2 e os elementos estão em ordem crescente, os elementos não são trocados.

A matriz classificada é A () = (2, 4, 6, 7, 1).

Continue o processo até que a matriz seja classificada.

2. Classificação de Inserção

Nesta técnica, começamos com o segundo elemento de dados assumindo que o primeiro elemento já esteja classificado e que a comparação seja feita com o segundo elemento e a etapa continue com o outro elemento subsequente. Em uma matriz de N elementos, é necessário ter passagens N-1 para ter um elemento classificado.

Considere uma matriz A () = (8, 3, 6, 1)

8361

Etapa 1: o primeiro elemento procura o maior elemento da matriz para trocar. Se for maior, permanece o mesmo e é movido para o segundo elemento, aqui 8 é maior que todos, nenhuma troca é feita.

8361

Etapa 2: Trocando com o Segundo Elemento

3861

Etapa 3: Trocar com o terceiro elemento

3681

Etapa 4: Trocar com o quarto elemento

1368

3. Classificação Rápida

Essa técnica segue o algoritmo de divisão e conquista e é considerada muito eficiente e mais rápida para grandes matrizes. Eles são divididos em três subseções: uma esquerda, uma direita e o meio. O elemento do meio tem um valor único e é nomeado como o pivô. O mecanismo é assim: o elemento no segmento esquerdo não deve ter uma chave maior que o elemento do meio e o elemento no à direita tem uma chave que é menor que a do elemento do meio. Agora vamos começar com uma ilustração do processo de classificação. O Quicksort usa um conceito recursivo ao classificar a subparte. A matriz é dividida em subpart, novamente os segmentos esquerdo e direito são particionados pela conquista. Aqui neste exemplo, considerando que o último elemento tem pivô e o primeiro elemento é considerado baixo. Considere um elemento de matriz

49.22111656.30

Tomar o elemento mais à direita tem o elemento pivô = 30

1622113056.49.

O elemento maior que o pivô é posicionado para a esquerda, menor à direita.

16221156.49.

O ponteiro é colocado no pivô e é particionado em torno de um pivô.

11221656.49.

As subpartes são classificadas individualmente.

1116223049.56.

Finalmente, obtivemos uma matriz classificada.

4. Classificação da Seleção

Essa técnica também é chamada de classificação de troca, que realiza a operação e pesquisa dupla. A implementação usa a classificação de seleção direta, conforme definido abaixo. Aqui, é necessário identificar o menor elemento presente na matriz e esse elemento é classificado na primeira i-ésima posição. Em seguida, o segundo menor elemento é identificado e é classificado na segunda posição. A classificação de seleção sai do loop quando a subparte não classificada fica vazia. A complexidade do tempo é dada como O (n 2 ).

Considere a seguinte matriz:

63.26132312

1. Encontre o menor elemento e coloque-o no início, e ele será trocado pela posição.

1226132363.

2. O segundo elemento a (1) é identificado, compare com o elemento mínimo e coloque-o na segunda posição; da mesma forma, o passe continua.

1213262364

Saída classificada final

1213232664

Conclusão

Para concluir, este artigo focou os conceitos de classificação e seu mecanismo de trabalho. Todas essas técnicas de classificação usam conceitos de processamento paralelo. A classificação forma um elemento essencial na estruturação de algoritmos para resolver os problemas dos dados no mundo real, classificando o conjunto de valores de acordo com os requisitos.

Artigos recomendados

Este é um guia para a classificação em C ++. Aqui discutimos a introdução e a sintaxe com exemplos, além de como isso funciona. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Classificação no Tableau
  2. Iterador em C ++
  3. Funções de matriz em C
  4. Heap Classificar em C
  5. Como a classificação é realizada em PHP?
  6. Heap Sort em Python
  7. Iterador em Java
  8. Os 11 principais recursos e vantagens do C ++
  9. Iterador em Python | Benefícios e exemplos de Python