Introdução ao algoritmo C ++
O conjunto finito de etapas organizadas sequencialmente, que atua como um guia para resolver qualquer problema. Essa palavra do algoritmo c ++ é particularmente usada na ciência da computação para definir o procedimento para resolver problemas complexos. A arquitetura da solução pode ser diferente para diferentes algoritmos. O algoritmo mais eficiente é aquele que fornece a solução em menos tempo e consome menos memória em comparação com outras soluções algorítmicas. No cabeçalho C ++, estão as funções projetadas para operar nos intervalos de números. Essas funções operam no número, mas não fazem nenhuma manipulação nos dados. Apenas funciona enquanto itera ou aponta para os números sem tocar em seus dados.
Algumas funções de membro sob o cabeçalho são:
- algoritmo :: adjacente_find (): aponta a primeira ocorrência de dois números consecutivos idênticos.
- algoritmo :: all_of (): Retorna true se os números estiverem abaixo do intervalo do primeiro e do último elementos.
- Algoritmo :: binary_search (): Verifica se o “valor a ser pesquisado” está presente na sequência classificada ou não.
- Algoritmo :: copy (): Esta função ajuda a copiar um intervalo de elementos de um local para o novo local.
- algoritmo :: count_if (): Esta função retorna o número de ocorrências de elementos específicos se a condição mencionada em "se condição" for atendida.
- algoritmo :: equal (): Esta função testa se dois conjuntos de elementos são iguais ou não. Existem muitas funções semelhantes predefinidas em C ++ que podem ser processadas por codificadores em vantagem nos seus negócios.
Explicação do algoritmo C ++
O C ++ fornece versões desses algoritmos no namespace std :: ranges. Algoritmos são o vasto tópico que abrange tópicos desde a pesquisa, classificação até min / max heaps. Estes podem ser classificados como:
1. Heap: nesses tipos, construímos um heap para descobrir o valor máximo ou mínimo da sequência. Isso usou a estrutura de dados das árvores para obter sua saída.
2. Pesquisa binária: esse algoritmo C ++ divide a sequência inteira em duas partes de forma iterativa até encontrar o valor real que estamos pesquisando a partir da sequência de destino. É um algoritmo altamente eficaz, pois reduz o tempo pela metade. A condição preliminar para usar esse algoritmo C ++ é que a sequência fornecida a ele seja classificada em qualquer ordem.
3. Classificação: Existem diferentes tipos de classificação que podem ser usados para gerar a sequência classificada. Eles são classificação de inserção, classificação de bolha, classificação, seleção de pilha, classificação rápida, classificação de mesclagem. Alguns desses algoritmos funcionam com o princípio de "dividir e governar", como mesclagem e classificação rápida. Eles são rápidos e eficientes em comparação com outros, embora usem mais memória em suas operações.
4. Operações simples na sequência: os algoritmos podem ser usados para executar operações simples, como substituir, remover, reverter os números em uma sequência. Existem muitas maneiras de alcançar esse resultado usando algoritmos diferentes, todos com o objetivo de obter o mesmo resultado.
5. Operações sem modificação: Algumas operações, como pesquisar, localizar, contam o número de elementos na sequência. Essas operações não modificam os valores dos dados do elemento, mas funcionam em torno desses elementos.
Exemplo de algoritmos com etapas
Aqui estão alguns exemplos do algoritmo C ++ com as etapas explicadas abaixo:
Exemplo 1
Escreva um algoritmo C ++ para escrever um programa para adicionar dois números.
Algoritmo
Os passos são dados abaixo:
- Começar
- Aceitar num1, num 2
- Soma = num1 + num2
- Soma de exibição
- Pare
Exemplo 2
Escreva um algoritmo C ++ para determinar se um aluno é aprovado ou reprovado com base nas notas. As notas são a média do total de notas obtidas em todos os assuntos.
Algoritmo
Os passos são dados abaixo:
- Começar
- Marcas de entrada1, Marcas2, Marcas3, Marcas4
- Nota = (Marcas1 + Marcas2 + Marcas3 + Marcas4) / 4
- Se (Nota <50) então
- Imprimir "Falha"
- Outro
- Imprimir “Passe”
- Fim se
- Pare
Exemplo 3
Classificação por bolha - este é o algoritmo C ++ para classificar a sequência numérica em ordem crescente ou decrescente. Ele compara os dois números mais próximos e coloca o pequeno antes de um número maior, se estiver ordenando em ordem crescente. Esse processo continua até chegarmos a uma sequência em que encontramos todos os números classificados em sequência.
A complexidade de tempo desse algoritmo é O (n), pois os controles precisam passar por todo o número de elementos que existem na sequência e verificar se 2 números adjacentes estão classificados. Caso contrário, ele classifica e se move para os outros dois pares adjacentes da série.
Implementação do algoritmo C ++ acima
Aqui está o exemplo do algoritmo C ++ com a implementação de código fornecida abaixo:
Código:
#include
void swap(int *p1, int *p2)
(
int temp = *p1;
*p1 = *p2;
*p2 = temp;
)
// This is an optimised code for the bubble sort
void bSort(int arrnumbers(), int n)
(
int i, j;
bool check;
for (i = 0; i < n-1; i++)
(
check = false;
for (j = 0; j < ni-1; j++)
(
if (arrnumbers(j) > arrnumbers(j+1))
(
swap(&arrnumbers(j), &arrnumbers(j+1));
check = true;
)
)
// We are breaking from the loop in case two elements were not swapped by inner loop.
if (check == false)
break;
)
)
//This function is to print the array sequence as final output after sorting
void print(int arrnumbers(), int sizeofarray)
(
int i;
for (i=0; i < sizeofarray; i++)
printf("%d ", arrnumbers(i));
)
// This the main program from where the execution will start
int main()
(
int arrnumbers() = (5, 6, 1, 0, 2, 9);
int n = sizeof(arrnumbers)/sizeof(arrnumbers(0));
bSort(arrnumbers, n);
printf("Sorted array: \n");
print(arrnumbers, n);
return 0;
)
Resultado:
Conclusão
O algoritmo C ++ é um guia de solução genérico detalhado passo a passo, desenvolvido com foco em fornecer a solução mais eficiente e demorada para qualquer problema. Existem muitas ferramentas para verificar a eficiência de algoritmos, como grandes notações Oh, Omega ou Gama, que são úteis para encontrar a eficácia dos algoritmos. Todo algoritmo tem seus próprios privilégios e vantagens e escolhemos a solução de ajuste correta conforme a declaração do problema. Isso desempenha um papel crucial quando projetamos uma solução para o problema, que se torna a base do desempenho do produto final.
Artigos recomendados
Este é um guia para o algoritmo C ++. Aqui discutimos a introdução e explicação detalhada do algoritmo C ++, juntamente com os vários exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais -
- Matrizes 3D em C ++
- Rust vs C ++
- Classe abstrata em C ++
- Sobrecarga e substituição em C ++
- Declarando classe abstrata em C # com exemplo