Algoritmo C ++ - Esempi di algoritmo C ++ con spiegazione dettagliata

Sommario:

Anonim

Introduzione all'algoritmo C ++

L'insieme finito di passaggi disposti in sequenza che funge da guida per risolvere qualsiasi problema. Questa parola dell'algoritmo c ++ è particolarmente usata nell'informatica per definire la procedura per risolvere problemi complessi. L'architettura della soluzione può essere diversa per algoritmi diversi. L'algoritmo più efficiente è quello che fornisce la soluzione in meno tempo e consuma meno memoria rispetto ad altre soluzioni algoritmiche. Nell'intestazione C ++ contiene le funzioni progettate per operare sugli intervalli di numeri. Queste funzioni operano sul numero ma non apportano alcuna modifica ai dati. Funziona solo durante l'iterazione o l'indicazione dei numeri senza toccarne i dati.

Alcune funzioni membro sotto l'intestazione sono:

  • algoritmo :: adiacente_find (): indica la prima occorrenza di due numeri consecutivi identici.
  • algoritmo :: all_of (): restituisce vero se i numeri si trovano nell'intervallo del primo e dell'ultimo elemento.
  • algoritmo :: binary_search (): controlla se il "valore da cercare" è presente nella sequenza ordinata o meno.
  • algoritmo :: copy (): questa funzione aiuta a copiare un intervallo di elementi da una posizione alla nuova posizione.
  • algoritmo :: count_if (): questa funzione restituisce il numero di occorrenze di elementi particolari se la condizione menzionata in "if condition" è soddisfatta.
  • algoritmo :: equal (): questa funzione verifica se due insiemi di elementi sono uguali o meno. Ci sono molte funzioni simili predefinite in C ++ che possono essere citate dai programmatori a vantaggio della loro attività.

Spiegazione dell'algoritmo C ++

C ++ fornisce le versioni di questi algoritmi nello spazio dei nomi std :: range. Gli algoritmi sono l'ampio argomento che copre gli argomenti dalla ricerca, l'ordinamento a heap min / max. Questi possono essere classificati come:

1. Heap: in tali tipi, costruiamo un heap per scoprire il valore massimo o minimo della sequenza. Questo ha usato la struttura dei dati degli alberi per ottenere il suo output.

2. Ricerca binaria: questo algoritmo C ++ divide l'intera sequenza in due parti in modo iterativo finché non trova il valore effettivo che stiamo cercando dalla sequenza target. È un algoritmo altamente efficace in quanto riduce il tempo della metà. La condizione preliminare per utilizzare questo algoritmo C ++ è che la sequenza fornita deve essere ordinata in qualsiasi ordine.

3. Ordinamento: esistono diversi tipi di ordinamento che possono essere utilizzati per generare la sequenza ordinata. Sono ordinamento per inserzione, ordinamento a bolle, ordinamento per selezione, ordinamento heap, ordinamento rapido, unione. Alcuni di questi algoritmi funzionano secondo il principio di "divide and rule" come unisci e ordina rapidamente. Questi sono rapidi ed efficienti rispetto ad altri sebbene utilizzino più memoria nelle loro operazioni.

4. Operazioni semplici sulla sequenza: gli algoritmi possono essere utilizzati per eseguire operazioni semplici come sostituire, rimuovere, invertire i numeri in una sequenza. Esistono molti modi per raggiungere questo output utilizzando algoritmi diversi, tutti con l'obiettivo di ottenere lo stesso output.

5. Operazioni non modificabili: alcune operazioni come ricerca, trova, contano il numero di elementi nella sequenza. Queste operazioni non modificano i valori dei dati dell'elemento ma funzionano attorno a questi elementi.

Esempio di algoritmi con passaggi

Ecco alcuni esempi dell'algoritmo C ++ con i passaggi spiegati di seguito:

Esempio 1

Scrivi un algoritmo C ++ per scrivere un programma per aggiungere due numeri.

Algoritmo

I passaggi sono indicati di seguito:

  1. Inizio
  2. Accetta num1, num 2
  3. Somma = num1 + num2
  4. Visualizza somma
  5. Fermare

Esempio n. 2

Scrivi un algoritmo C ++ per determinare se uno studente è passato o fallito in base ai voti. I voti sono la media dei voti totali ottenuti in tutte le materie.

Algoritmo

I passaggi sono indicati di seguito:

  1. Inizio
  2. Input Marks1, Marks2, Marks3, Marks4
  3. Grado = (Marks1 + Marks2 + Marks3 + Marks4) / 4
  4. Se (Grado <50) allora
  5. Stampa "Fail"
  6. Altro
  7. Stampa "Pass"
  8. Finisci se
  9. Fermare

Esempio n. 3

Bubble sort- Questo è l'algoritmo C ++ per ordinare la sequenza numerica in ordine crescente o decrescente. Confronta i due numeri più vicini e mette quello piccolo prima di un numero più grande se l'ordinamento è in ordine crescente. Questo processo continua fino a quando non raggiungiamo una sequenza in cui troviamo tutti i numeri ordinati in sequenza.

La complessità temporale di questo algoritmo è O (n) poiché i controlli devono passare attraverso tutto il numero di elementi presenti nella sequenza e quindi verificare se 2 numeri adiacenti sono ordinati. Altrimenti ordina e si sposta sulle altre due coppie adiacenti della serie.

Implementazione dell'algoritmo C ++ sopra

Ecco l'esempio dell'algoritmo C ++ con l'implementazione del codice riportato di seguito:

Codice:

#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;
)

Produzione:

Conclusione

L'algoritmo C ++ è una guida dettagliata dettagliata della soluzione generica che è stata progettata tenendo a fuoco per fornire la soluzione più efficiente e che richiede meno tempo a qualsiasi problema fornito. Esistono molti strumenti per verificare l'efficienza di algoritmi come le grandi notazioni Oh, le notazioni Omega o Gama che sono utili per trovare l'efficacia degli algoritmi. Ogni algoritmo ha i suoi privilegi e vantaggi e scegliamo la soluzione adatta secondo la dichiarazione del problema. Questo svolge un ruolo cruciale quando progettiamo una soluzione al problema in quanto diventa la base delle prestazioni del prodotto finale.

Articoli consigliati

Questa è una guida all'algoritmo C ++. Qui discutiamo l'introduzione e la spiegazione dettagliata dell'algoritmo C ++ insieme ai vari esempi e implementazione del codice. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Matrici 3D in C ++
  2. Rust vs C ++
  3. Classe astratta in C ++
  4. Sovraccarico e override in C ++
  5. Dichiarazione della classe astratta in C # con l'esempio