C ++ algoritm - C ++ algoritmi näited koos üksikasjaliku selgitusega

Lang L: none (table-of-contents):

Anonim

Sissejuhatus C ++ algoritmi

Lõplik järjestikuste sammude komplekt, mis toimib juhendina mis tahes probleemi lahendamisel. Seda c ++ algoritmi sõna kasutatakse eriti arvutiteaduses keerukate probleemide lahendamise korra määratlemiseks. Lahenduse arhitektuur võib erinevate algoritmide puhul olla erinev. Kõige tõhusam algoritm on see, mis pakub lahenduse vähem aega ja võtab võrreldes teiste algoritmiliste lahendustega vähem mälu. C ++ päises on funktsioonid, mis on loodud töötama numbrivahemikes. Need funktsioonid töötavad numbril, kuid ei tee andmetega mingeid manipulatsioone. See töötab vaid numbreid korrates või osutades, ilma et selle andmeid puudutaks.

Mõned päise all olevad liikmefunktsioonid on:

  • algoritm :: blakus_find (): osutab kahe identse järjestikuse arvu esimesele esinemisele.
  • algoritm :: all_of (): Tagastab tõese, kui arvud jäävad esimese ja viimase elemendi vahemikku.
  • algoritm :: binary_search (): kontrollib, kas otsitav väärtus on sorteeritud järjestuses või mitte.
  • algoritm :: copy (): See funktsioon aitab elementide vahemiku kopeerimisel ühest asukohast uude asukohta.
  • algoritm :: count_if (): See funktsioon tagastab konkreetsete elementide esinemiste arvu, kui “kui tingimus” all nimetatud tingimus on täidetud.
  • algoritm :: võrdsed (): Selle funktsiooniga kontrollitakse, kas kaks elementide komplekti on võrdsed või mitte. C ++-s on etteantud palju sarnaseid funktsioone, mida kodeerijad saavad oma äri eeliseks kohtusse kaevata.

C ++ algoritmi selgitus

C ++ pakub nende algoritmide versioone nimeruumi std :: vahemikes. Algoritmid on lai teema, mis hõlmab teemasid alates otsimisest, sortimisest kuni min / max hunnikuni. Neid võib liigitada järgmiselt:

1. Hunnik: Selliste tüüpide korral konstrueerime hunniku, et teada saada jada maksimaalset või minimaalset väärtust. Selle tulemuse saavutamiseks kasutati puude andmestruktuuri.

2. Binaarne otsing: see C ++ algoritm jagab kogu jada iteratiivselt kaheks osaks, kuni see leiab tegeliku väärtuse, mida me sihtjärjestusest otsime. See on väga tõhus algoritm, kuna see vähendab aega poole võrra. Selle C ++ algoritmi kasutamise eeltingimus on, et sellele pakutavat järjestust tuleks sortida suvalises järjekorras.

3. Sorteerimine: sorteeritud jada genereerimiseks saab kasutada erinevaid tüüpe. Need on sisestussorteerimine, mullide sortimine, valiku sorteerimine, hunnikute sortimine, kiire sortimine, liitmine. Mõned neist algoritmidest töötavad põhimõttel "jaga ja valitse" nagu ühendamine ja kiire sortimine. Need on teistega võrreldes kiired ja tõhusad, ehkki nende töös kasutatakse rohkem mälu.

4. Lihtsad toimingud järjestuse jooksul: algoritme saab kasutada lihtsate toimingute tegemiseks, nagu numbrite järjestuse asendamine, eemaldamine ja tagasipööramine. Selle väljundini jõudmiseks on erinevaid võimalusi, kasutades erinevaid algoritme, mis kõik on suunatud sama väljundi saavutamiseks.

5. Mitte modifitseerivad toimingud: mõned toimingud, näiteks otsing, leidmine, loendamine elementide arvu järjestuses. Need toimingud ei muuda elemendi andmeväärtusi, vaid toimivad nende elementide ümber.

Näide sammudega algoritmidest

Siin on mõned näited C ++ algoritmist koos järgmiste sammudega:

Näide nr 1

Kahe numbri lisamiseks programmi kirjutamiseks kirjutage C ++ algoritm.

Algoritm

Sammud on toodud allpool:

  1. Alusta
  2. Nõustu num1, num 2
  3. Summa = num1 + num2
  4. Kuvasumma
  5. Peatu

Näide 2

Kirjutage C ++ algoritm, et teha kindlaks, kas õpilane on hinnete põhjal sooritanud või mitte. Hinded on kõigist õppeainetest saadud hinnete keskmine.

Algoritm

Sammud on toodud allpool:

  1. Alusta
  2. Sisendmärgid1, Marks2, Marks3, Marks4
  3. Hinne = (Marks1 + Marks2 + Marks3 + Marks4) / 4
  4. Kui (klass <50) siis
  5. Prindi „Fail”
  6. Muu
  7. Prindi “Pass”
  8. Lõpeta kui
  9. Peatu

Näide 3

Mullide sortimine - see on C ++ algoritm numbrijada järjestamiseks kasvavas või kahanevas järjekorras. See võrdleb kahte lähimat numbrit ja asetab väiksema suurema numbri ette, kui sorteerite kasvavas järjekorras. See protsess jätkub, kuni jõuame jada juurde, kus leiame kõik numbrid järjekorras järjestatud.

Selle algoritmi ajaline keerukus on O (n), kuna juhtseadised peavad läbima kogu arvu jadas olevaid elemente ja seejärel kontrollima, kas 2 külgnevat arvu on sorteeritud. Kui ei, siis see sorteerib ja liigub sarja kahe teise külgneva paari juurde.

Ülaltoodud C ++ algoritmi rakendamine

Siin on näide C ++ algoritmist koos koodide rakendamisega, mis on toodud allpool:

Kood:

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

Väljund:

Järeldus

C ++ algoritm on üksikasjalik samm-sammuline üldine lahendusjuhend, mille eesmärk on hoida tähelepanu keskmes, et pakkuda pakutavale probleemile kõige tõhusam ja vähem aeganõudev lahendus. Algoritmide tõhususe kontrollimiseks on palju tööriistu, näiteks suured Oh märkused, Omega või Gama märked, mis on kasulik algoritmide tõhususe leidmiseks. Igal algoritmil on oma privileegid ja eelised ning vastavalt probleemilausele valime sobiva lahenduse. See mängib otsustavat rolli probleemile lahenduse kavandamisel, kuna see saab lõpptoote toimivuse aluseks.

Soovitatavad artiklid

See on C ++ algoritmi juhend. Siin käsitleme C ++ algoritmi tutvustamist ja üksikasjalikku selgitust koos erinevate näidete ja koodi rakendamisega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. 3D-massiivid C ++ -s
  2. Rooste vs C ++
  3. C ++ abstraktne klass
  4. C ++ ülekoormamine ja alistamine
  5. C-klassi abstraktse klassi kuulutamine näitega