Introduktion till C ++ algoritm
Den ändliga uppsättningen av steg arrangerade i tur och ordning som fungerar som en vägledning för att lösa alla problem. Detta c ++ algoritmord används särskilt inom datavetenskap för att definiera proceduren för att lösa komplexa problem. Lösningens arkitektur kan vara annorlunda för olika algoritmer. Den mest effektiva algoritmen är den som ger lösningen på kortare tid och tar mindre minne i jämförelse med andra algoritmiska lösningar. I C ++ -huvudet innehåller funktionerna som är utformade för att fungera i nummerintervallen. Dessa funktioner fungerar på numret men gör inga manipulationer av data. Det fungerar bara medan det itereras eller pekar på siffrorna utan att röra vid dess data.
Vissa medlemsfunktioner under rubriken är:
- algoritm :: angränsande_find (): Pekar den första förekomsten av två identiska på varandra följande nummer.
- algoritm :: all_of (): Returnerar sant om siffrorna ligger under intervallet för första och sista element.
- algoritm :: binary_search (): Kontrollerar om "värdet som ska sökas" finns i den sorterade sekvensen eller inte.
- algoritm :: copy (): Denna funktion hjälper till att kopiera en rad element från en plats till den nya platsen.
- algoritm :: count_if (): Den här funktionen returnerar antalet händelser av vissa element om villkoret som nämns i “if condition” är uppfyllt.
- algoritm :: lika (): Denna funktion testar om två uppsättningar av element är lika eller inte. Det finns många liknande funktioner fördefinierade i C ++ som kan stämmas av kodare till förmån för deras verksamhet.
Förklaring av C ++ algoritm
C ++ tillhandahåller versioner av dessa algoritmer i namnutrymmet std :: -intervall. Algoritmer är det stora ämnet som täcker ämnen från sökning, sortering till min / max högar. Dessa kan kategoriseras som:
1. Heap: I sådana typer konstruerar vi en hög för att ta reda på max- eller minvärdet för sekvensen. Detta använde datastrukturen för träd för att uppnå sin produktion.
2. Binär sökning: Denna C ++ - algoritm delar upp hela sekvensen i två delar iterativt tills den hittar det verkliga värdet vi söker från den målsekvensen. Det är en mycket effektiv algoritm eftersom den reducerar tiden med hälften. Det preliminära villkoret för att använda denna C ++ - algoritm är att den sekvens som tillhandahålls till den ska sorteras i valfri ordning.
3. Sortering: Det finns olika typer av sortering som kan användas för att generera den sorterade sekvensen. De är insättningssortering, bubbelsortering, urvalssortering, högsortering, snabbsortering, sammanslagningssortering. Vissa av dessa algoritmer fungerar enligt principen om "splittring och regel" som sammanslagning och snabb sortering. Dessa är snabba och effektiva jämfört med andra, även om de använder mer minne i sin verksamhet.
4. Enkla operationer över sekvensen: algoritmer kan användas för att utföra enkla operationer som att ersätta, ta bort, vända siffrorna i en sekvens. Det finns många sätt att nå denna utgång med olika algoritmer som alla syftar till att uppnå samma utgång.
5. Operationer som inte modifierar: Vissa operationer som sökning, hitta, räkna antalet element i sekvensen. Dessa operationer modifierar inte elementets datavärden utan fungerar runt dessa element.
Exempel på algoritmer med steg
Här är några exempel på C ++ - algoritmen med steg som förklaras nedan:
Exempel 1
Skriv en C ++ - algoritm för att skriva ett program för att lägga till två siffror.
Algoritm
Steg anges nedan:
- Start
- Acceptera num1, num 2
- Summa = num1 + num2
- Visa summan
- Sluta
Exempel 2
Skriv en C ++ -algoritm för att avgöra om en student är godkänd eller inte baserat på betyg. Betyg är medelvärdet av totala poäng som erhållits i alla ämnen.
Algoritm
Steg anges nedan:
- Start
- Inmatningsmärken1, märken2, märken3, märken4
- Betyg = (Märken1 + Märken2 + Märken3 + Märken4) / 4
- Om (grad <50) då
- Skriv ut "Fail"
- Annan
- Skriv ut "Pass"
- Sluta om
- Sluta
Exempel 3
Bubble sort- Detta är C ++ -algoritmen för att sortera nummersekvensen i stigande eller fallande ordning. Den jämför de närmaste två siffrorna och placerar den lilla före ett större nummer om den sorteras i stigande ordning. Denna process fortsätter tills vi når en sekvens där vi hittar alla nummer sorterade i sekvens.
Tidskomplexiteten för denna algoritm är O (n) eftersom kontrollerna måste gå igenom alla antalet element som finns där i sekvensen och sedan kontrollera om 2 angränsande nummer är sorterade. Om inte, sorterar den och flyttar till de andra två angränsande paren i serien.
Implementering av ovanstående C ++ algoritm
Här är exemplet på C ++ algoritmen med kodimplementering nedan:
Koda:
#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;
)
Produktion:
Slutsats
C ++ algoritm är en detaljerad steg-för-steg generisk lösningsguide som är utformad med fokus i fokus för att ge den mest effektiva och mindre tidskrävande lösningen på alla problem som tillhandahålls. Det finns många verktyg för att kontrollera effektiviteten hos algoritmer som stora Oh-notationer, Omega- eller Gama-notationer, vilket är användbart för att hitta effektiviteten hos algoritmer. Varje algoritm har sitt eget privilegium och fördelar och vi väljer rätt passningslösning enligt problemet. Detta spelar en avgörande roll när vi utformar en lösning för problemet eftersom det blir basen för den slutliga produktens prestanda.
Rekommenderade artiklar
Detta är en guide till C ++ -algoritmen. Här diskuterar vi introduktionen och detaljerad förklaring av C ++ - algoritmen tillsammans med olika exempel och kodimplementering. Du kan också titta på följande artiklar för att lära dig mer -
- 3D-matriser i C ++
- Rust mot C ++
- Abstrakt klass i C ++
- Överbelastning och överbestyrning i C ++
- Förklara abstrakt klass i C # med exempel