C ++ Algoritme - Voorbeelden van C ++ algoritme met gedetailleerde uitleg

Inhoudsopgave:

Anonim

Inleiding tot C ++ Algorithm

De eindige reeks opeenvolgende stappen die als een gids dient om elk probleem op te lossen. Dit c ++ algoritmewoord wordt vooral gebruikt in de informatica om de procedure te definiëren voor het oplossen van complexe problemen. De architectuur van de oplossing kan verschillen voor verschillende algoritmen. Het meest efficiënte algoritme is het algoritme dat de oplossing in minder tijd biedt en minder geheugen verbruikt in vergelijking met andere algoritmische oplossingen. In de C ++ header bevat de functies ontworpen om te werken op de nummerreeksen. Deze functies werken op het nummer, maar passen de gegevens niet aan. Het werkt gewoon tijdens het itereren of wijzen naar de nummers zonder de gegevens aan te raken.

Sommige ledenfuncties onder de kop zijn:

  • algoritme :: aangrenzend_vind (): Wijst op het eerste voorkomen van twee identieke opeenvolgende getallen.
  • algorithm :: all_of (): Retourneert true als de getallen onder het bereik van eerste en laatste elementen liggen.
  • algorithm :: binary_search (): Controleert of de "te zoeken waarde" aanwezig is in de gesorteerde volgorde of niet.
  • algorithm :: copy (): Deze functie helpt bij het kopiëren van een reeks elementen van de ene locatie naar de nieuwe locatie.
  • algoritme :: count_if (): deze functie retourneert het aantal keren dat bepaalde elementen voorkomen als aan de voorwaarde is voldaan die wordt vermeld in "als voorwaarde".
  • algoritme :: equal (): deze functie test of twee sets elementen gelijk zijn of niet. Er zijn veel vergelijkbare functies vooraf gedefinieerd in C ++ die door coders kunnen worden aangesproken in het voordeel van hun bedrijf.

Verklaring van het C ++ algoritme

C ++ biedt versies van deze algoritmen in de naamruimte std :: bereiken. Algoritmen zijn het uitgebreide onderwerp dat onderwerpen omvat van zoeken, sorteren tot min / max-hopen. Deze kunnen worden gecategoriseerd als:

1. Heap: bij dergelijke typen construeren we een heap om de maximale of minimale waarde van de reeks te achterhalen. Dit gebruikte de gegevensstructuur van bomen om zijn output te bereiken.

2. Binair zoeken: dit C ++ -algoritme verdeelt de hele reeks iteratief in twee delen totdat het de werkelijke waarde vindt die we zoeken in de beoogde reeks. Het is een zeer effectief algoritme omdat het de tijd met de helft vermindert. De eerste voorwaarde om dit C ++ -algoritme te gebruiken, is dat de opgegeven volgorde in elke volgorde moet worden gesorteerd.

3. Sorteren: er zijn verschillende soorten sortering die kunnen worden gebruikt om de gesorteerde volgorde te genereren. Ze zijn insertion sort, bubble sort, selection sort, heap sort, quick sort, merge sort. Sommige van deze algoritmen werken volgens het principe van 'verdeel en heers', zoals samenvoegen en snel sorteren. Deze zijn snel en efficiënt in vergelijking met anderen, hoewel ze meer geheugen gebruiken bij hun activiteiten.

4. Eenvoudige bewerkingen over de reeks: algoritmen kunnen worden gebruikt om eenvoudige bewerkingen uit te voeren, zoals het vervangen, verwijderen en omkeren van de nummers in een reeks. Er zijn veel manieren om deze uitvoer te bereiken met behulp van verschillende algoritmen die allemaal proberen dezelfde uitvoer te bereiken.

5. Niet-wijzigende bewerkingen: sommige bewerkingen zoals zoeken, vinden, tellen het aantal elementen in de reeks. Deze bewerkingen wijzigen de gegevenswaarden van het element niet, maar werken rondom deze elementen.

Voorbeeld van algoritmen met stappen

Hier zijn enkele voorbeelden van het C ++ -algoritme met onderstaande stappen:

Voorbeeld 1

Schrijf een C ++ algoritme om een ​​programma te schrijven om twee getallen toe te voegen.

Algoritme

Stappen worden hieronder gegeven:

  1. Begin
  2. Accepteer nummer 1, nummer 2
  3. Som = num1 + num2
  4. Som weergeven
  5. Hou op

Voorbeeld 2

Schrijf een C ++ -algoritme om te bepalen of een student slaagt of slaagt op basis van de cijfers. Cijfers zijn het gemiddelde van het totale aantal behaalde scores in alle vakken.

Algoritme

Stappen worden hieronder gegeven:

  1. Begin
  2. Input Marks1, Marks2, Marks3, Marks4
  3. Grade = (Marks1 + Marks2 + Marks3 + Marks4) / 4
  4. Als (Grade <50) dan
  5. Afdrukken "Mislukt"
  6. Anders
  7. "Pass" afdrukken
  8. Stop als
  9. Hou op

Voorbeeld 3

Bubble sort - Dit is het C ++ -algoritme om de nummerreeks in oplopende of aflopende volgorde te sorteren. Het vergelijkt de dichtstbijzijnde twee nummers en plaatst het kleine voor een groter nummer als het in oplopende volgorde wordt gesorteerd. Dit proces gaat door totdat we een reeks bereiken waarin we alle getallen in volgorde vinden.

De tijdcomplexiteit van dit algoritme is O (n), omdat de besturingselementen alle elementen in de reeks moeten doorlopen en vervolgens moeten controleren of 2 aangrenzende nummers zijn gesorteerd. Zo niet, dan sorteert het en gaat het naar de andere twee aangrenzende paren in de serie.

Implementatie van het bovenstaande C ++ algoritme

Hier is het voorbeeld van het C ++ -algoritme met onderstaande code-implementatie:

Code:

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

Output:

Conclusie

Het C ++ -algoritme is een gedetailleerde stapsgewijze generieke oplossingsgids die is ontworpen om in focus te blijven om de meest efficiënte en minder tijdrovende oplossing voor elk geboden probleem te bieden. Er zijn veel tools om de efficiëntie van algoritmen te controleren, zoals grote Oh-notatie, Omega- of Gama-notaties, wat handig is om de effectiviteit van algoritmen te vinden. Elk algoritme heeft zijn eigen privileges en voordelen en we kiezen de juiste oplossing volgens de probleemstelling. Dit speelt een cruciale rol wanneer we een oplossing voor het probleem ontwerpen omdat het de basis wordt voor de prestaties van het eindproduct.

Aanbevolen artikelen

Dit is een handleiding voor het C ++ algoritme. Hier bespreken we de introductie en gedetailleerde uitleg van het C ++ -algoritme samen met de verschillende voorbeelden en code-implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. 3D-arrays in C ++
  2. Roest versus C ++
  3. Abstracte klasse in C ++
  4. Overbelasting en opheffen in C ++
  5. Verklaar Abstracte Klasse in C # met Voorbeeld