C ++ -algoritmi - Esimerkkejä C ++ -algoritmista yksityiskohtaisella selityksellä

Sisällysluettelo:

Anonim

Johdanto C ++ -algoritmiin

Äärellinen vaihejärjestys, joka on järjestetty peräkkäin ja joka toimii ohjeena minkä tahansa ongelman ratkaisemiseksi. Tätä c ++ -algoritmisanaa käytetään erityisesti tietotekniikassa määrittelemään menettelytapa monimutkaisten ongelmien ratkaisemiseksi. Ratkaisun arkkitehtuuri voi olla erilainen eri algoritmeille. Tehokkain algoritmi on se, joka tarjoaa ratkaisun lyhyemmässä ajassa ja vie vähemmän muistia verrattuna muihin algoritmisiin ratkaisuihin. C ++ -otsikossa on toiminnot, jotka on suunniteltu toimimaan numeroalueilla. Nämä toiminnot toimivat numerolla, mutta eivät tee tietojen käsittelyyn mitään muutoksia. Se toimii vain iteroidessaan tai osoittamalla numeroita koskematta sen tietoja.

Jotkut otsikon alla olevat jäsentoiminnot ovat:

  • algoritmi :: vierekkäinen_haku (): Osoittaa kahden samanlaisen peräkkäisen numeron ensimmäisen esiintymisen.
  • algoritmi :: all_of (): Palauttaa tosi, jos numerot ovat ensimmäisen ja viimeisen elementin alueella.
  • algoritmi :: binary_search (): Tarkistaa, onko etsittävä arvo esiintynyt lajitelmassa .
  • algoritmi :: copy (): Tämä toiminto auttaa kopioimaan erilaisia ​​elementtejä yhdestä paikasta uuteen sijaintiin.
  • algoritmi :: count_if (): Tämä toiminto palauttaa tiettyjen elementtien esiintymien määrän, jos ”jos ehto” -kohdassa mainittu ehto täyttyy.
  • algoritmi :: yhtäläinen (): Tämä toiminto testaa onko kaksi elementtijoukkoa yhtä suuret vai eivät. C ++: ssa on ennalta määritetty paljon vastaavia toimintoja, jotka kooderit voivat haastaa heidän liiketoimintaansa hyödyksi.

C ++ -algoritmin selitys

C ++ tarjoaa versioita näistä algoritmeista nimitilan std :: alueilla. Algoritmit ovat laaja aihe, joka kattaa aiheet etsinnästä, lajittelusta min / max-kasoihin. Ne voidaan luokitella seuraavasti:

1. Kasa: Tällaisissa tyypeissä rakennamme kasan selvittääksemme sekvenssin maksimiarvon tai min-arvon. Tämä käytti puiden tietorakennetta tuloksensa saavuttamiseksi.

2. Binaarihaku: Tämä C ++ -algoritmi jakaa koko sekvenssin iteratiivisesti, kunnes se löytää kohdistetun sekvenssin etsimämme todellisen arvon. Se on erittäin tehokas algoritmi, koska se vähentää aikaa puoleen. Alkuedellytys tämän C ++ -algoritmin käyttämiselle on, että sille annettu järjestys on lajiteltava missä tahansa järjestyksessä.

3. Lajittelu: Lajittelua on erityyppisiä, joita voidaan käyttää lajiteltujen sekvenssien luomiseen. Ne ovat lisäyslajittelu, kuplalajittelu, valintalaji, kasalajittelu, nopea lajittelu, yhdistäminen. Jotkut näistä algoritmeista toimivat periaatteella "jaa ja hallitse", kuten yhdistäminen ja nopea lajittelu. Nämä ovat nopeita ja tehokkaita muihin verrattuna, vaikka käyttävät enemmän muistia toiminnassaan.

4. Yksinkertaiset toiminnot sekvenssin yli: Algoritmeja voidaan käyttää suorittamaan yksinkertaisia ​​toimintoja, kuten korvaamaan, poistamaan tai kääntämään numerot sarjassa. On monia tapoja saavuttaa tämä lähtö käyttämällä erilaisia ​​algoritmeja, joilla kaikilla pyritään saamaan sama tulos.

5. Ei-modifioivat toiminnot: Jotkut toiminnot, kuten haku, löytäminen, sekvenssin elementtien lukumäärä. Nämä toiminnot eivät muuta elementin data-arvoja, mutta toimivat näiden elementtien ympärillä.

Esimerkki algoritmeista vaiheilla

Tässä on joitain esimerkkejä C ++ -algoritmista, jossa on alla selitetyt vaiheet:

Esimerkki # 1

Kirjoita C ++ -algoritmi kirjoittaaksesi ohjelma kahden numeron lisäämiseksi.

algoritmi

Vaiheet on annettu alla:

  1. alkaa
  2. Hyväksy numero 1, numero 2
  3. Summa = num1 + num2
  4. Näytä summa
  5. Lopettaa

Esimerkki 2

Kirjoita C ++ -algoritmi selvittääksesi, onko opiskelija hyväksytty tai hylätty arvosanojen perusteella. Asteikot ovat kaikkien aiheiden keskimääräisiä pisteitä.

algoritmi

Vaiheet on annettu alla:

  1. alkaa
  2. Input Marks1, Marks2, Marks3, Marks4
  3. Arvosana = (Marks1 + Marks2 + Marks3 + Marks4) / 4
  4. Jos (aste <50) sitten
  5. Tulosta “Fail”
  6. muu
  7. Tulosta “Pass”
  8. Loppu Jos
  9. Lopettaa

Esimerkki 3

Bubble sort- Tämä on C ++ -algoritmi numerojärjestyksen lajittelemiseksi nousevassa tai laskevassa järjestyksessä. Se vertaa kahta lähintä numeroa ja asettaa pienemmän ennen suurempaa numeroa, jos lajitellaan nousevassa järjestyksessä. Tämä prosessi jatkuu, kunnes saavutamme jakson, jossa löydämme kaikki numerot järjestyksessä.

Tämän algoritmin aika monimutkaisuus on O (n), koska säätimien täytyy käydä läpi kaikki sarjassa olevat elementit ja tarkistaa sitten, onko 2 vierekkäistä numeroa lajiteltu. Jos ei, niin se lajitellaan ja siirtyy sarjan kahteen viereiseen pariin.

Yllä olevan C ++ -algoritmin toteutus

Tässä on esimerkki alla annetusta C ++ -algoritmista koodin toteutuksella:

Koodi:

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

lähtö:

johtopäätös

C ++ -algoritmi on yksityiskohtainen vaiheittainen yleinen ratkaisu-opas, joka on suunniteltu pitämään tarkkaavaisena tarjoamaan tehokkain ja vähemmän aikaa vievä ratkaisu mihin tahansa tarjolla olevaan ongelmaan. Algoritmien tehokkuuden tarkistamiseen on monia työkaluja, kuten suuret Oh-merkinnät, Omega- tai Gama-merkinnät, mikä on hyödyllistä algoritmien tehokkuuden löytämiseksi. Jokaisella algoritmilla on omat etuoikeutensa ja edut, ja valitsemme oikean sopivan ratkaisun ongelmalausunnon mukaan. Tällä on ratkaiseva rooli suunnitellessamme ratkaisua ongelmaan, koska siitä tulee lopputuotteen suorituskyvyn perusta.

Suositellut artikkelit

Tämä on opas C ++ -algoritmiin. Tässä keskustellaan C ++ -algoritmin johdannosta ja yksityiskohtaisesta selityksestä yhdessä erilaisten esimerkkien ja koodin toteutuksen kanssa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. 3D-taulukot C ++: ssa
  2. Ruoste vs. C ++
  3. Abstrakti luokka luokassa C ++
  4. Ylikuormitus ja ohittaminen C ++: ssa
  5. Abstraktin luokan julistaminen esimerkissä C #