Como implementar a função de classificação em C ++?



Este artigo irá ajudá-lo a explorar a função Sort em c ++ e, no processo, fornecerá uma demonstração detalhada do conceito

Ordenação é uma das funções mais básicas e úteis aplicadas aos dados. Tem como objetivo organizar os dados de uma forma particular, que pode ser crescente ou decrescente conforme os requisitos. Existe uma função embutida em C ++ STL com o nome de ‘sort ()’ que nos permite realizar algoritmos de classificação facilmente. Neste artigo, iremos explorar a função Sort em C ++,

As dicas a seguir serão abordadas neste artigo:





Continuando com este artigo sobre a função Classificar em C ++

Ordenar ( ) função

É uma função incorporada do arquivo de cabeçalho do algoritmo, usada para classificar os contêineres como uma matriz, vetores em uma ordem especificada. Internamente, esta função é implementada como classificação rápida
Quicksort é um algoritmo de divisão e conquista. Quicksort primeiro divide uma grande lista de elementos em duas sub-listas menores: os elementos inferiores e os elementos superiores. O Quicksort então classifica recursivamente as sublistas.



As etapas são as seguintes:
1. Escolha um elemento aleatório (geralmente o último elemento), denominado pivô, na lista.
2. Reordene a lista de forma que todos os elementos com valores menores que o pivô venham antes do pivô, enquanto todos os elementos com valores maiores que o pivô venham depois dele e os valores iguais possam seguir em qualquer das direções - este processo é chamado de operação de partição.
3. Classifique recursivamente a sub-lista de elementos menores e a sublista de elementos maiores, selecione novamente um pivô na sub-lista e divida-os.
O caso base da recursão são listas de tamanho zero ou um, que nunca precisam ser classificadas e, assim, combinando-as, classificamos nossa lista.

O Quicksort é mais rápido na prática do que outros algoritmos O (n log n), como classificação por inserção ou classificação por bolha. Quicksort pode ser implementado com um algoritmo de particionamento no local, o que significa que toda a classificação pode ser feita com apenas O (log n) de espaço adicional. Quicksort não é um tipo estável.
Sua complexidade é a seguinte:
Melhor caso - O (n log n)
Pior caso - O (n ^ 2)
Caso Médio - O (n log n)

Sintaxe:
classificar (primeiro, último)
Aqui,
primeiro - é o índice (ponteiro) do primeiro elemento no intervalo a ser classificado.
último - é o índice (ponteiro) do último elemento no intervalo a ser classificado.
Por exemplo, queremos classificar os elementos de uma matriz ‘arr’ da posição 1 a 10, usaremos classificar (arr, arr + 10) e ele classificará 10 elementos em ordem crescente.
Valor de retorno
Nenhum



Complexidade

A média de uma complexidade de classificação é N * log2 (N), onde N = último - primeiro.

Intervalo de dados
Os objetos no intervalo [primeiro, último) são modificados.

Exceções
As sobrecargas com um parâmetro de modelo denominado ExecutionPolicy relatam erros da seguinte maneira:
Se o algoritmo falhar em alocar memória, std :: bad_alloc é lançado como uma exceção.
Se a execução de uma função chamada como parte do algoritmo, é lançada uma exceção std :: terminate.

Continuando com este artigo sobre a função Classificar em C ++

Exemplo - Para classificar os dados em ordem crescente:

#include using namespace std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (array [0] ) // 'sizeof' fornece o tamanho do array total, ou seja, o tamanho de cada caractere * no. de caracteres // para obter não. de caracteres // dividimos o sizeof (array) com o tamanho de qualquer caractere do array // aqui é array [0] sort (array, array + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Resultado :

Saída - Função de classificação em C ++ - Edureka

diferença java entre implements e extends

Explicação

No exemplo acima, vemos que a função sort (), por padrão, classifica um array em ordem crescente.

Continuando com este artigo sobre a função Classificar em C ++

Exemplo - para classificar os dados em ordem decrescente:

Para classificar os dados do array em ordem decrescente, precisamos introduzir um terceiro parâmetro que é usado para especificar a ordem em que os elementos devem ser classificados. Podemos usar a função “maior ()” para classificar os dados em ordem decrescente.

#include using namespace std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (array [0] ) sort (array, array + n, maior ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Resultado:

Exp eu uma nação
Aqui a função sort () faz uma comparação de uma forma que coloca um elemento maior antes.

Continuando com este artigo sobre a função Classificar em C ++

Partial_sort

C ++ STL nos fornece uma função de classificação parcial, a função é semelhante à função sort (), mas ao contrário da função sort (), ela não é usada para classificar o intervalo inteiro, em vez disso, é usada para classificar apenas uma subparte dele. Ele classifica os elementos no intervalo de [primeiro, último), de forma que os elementos antes do elemento do meio sejam classificados em ordem crescente, enquanto os elementos após o meio são deixados como estão.

Ele pode ser usado para encontrar o maior elemento se usarmos um objeto de função para classificar para a primeira posição

Exemplo

php insert into $ table
#include #include #include using namespace std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), maior ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Resultado:

Explicação:
O código acima pode ser usado para encontrar o maior número em uma série, para encontrar o menor número em uma série, só precisamos remover o comando maior.

Assim, chegamos ao fim deste artigo sobre ‘Função de classificação em C ++’. Se você deseja aprender mais, confira o Treinamento em Java da Edureka, uma empresa confiável de aprendizado online. Edureka's O curso foi desenvolvido para treiná-lo nos conceitos básicos e avançados do Java, juntamente com vários frameworks 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.