Uvod u algoritam C ++
Konačni skup koraka raspoređenih uzastopno koji djeluje kao vodič za rješavanje bilo kojeg problema. Ova riječ + algoritam c ++ posebno se koristi u računalnoj znanosti za definiranje postupka rješavanja složenih problema. Arhitektura rješenja može biti različita za različite algoritme. Najefikasniji algoritam je onaj koji nudi rješenje za manje vremena i troši manje memorije u odnosu na druga algoritamska rješenja. U zaglavlju C ++ nalaze se funkcije dizajnirane za rad na rasponima brojeva. Te funkcije djeluju na broj, ali ne vrše nikakve manipulacije podacima. Jednostavno radi dok iterira ili pokazuje na brojeve bez dodirivanja podataka.
Neke su funkcije člana ispod zaglavlja:
- algoritam :: adjacent_find (): Pokazuje prvo pojavljivanje dva jednaka uzastopna broja.
- algoritam :: all_of (): Vraća istinu ako su brojevi ispod raspona prvog i posljednjeg elementa.
- algoritam :: binary_search (): Provjerava je li "vrijednost za pretraživanje" prisutna u sortiranom nizu ili ne.
- algoritam :: copy (): Ova funkcija pomaže u kopiranju niza elemenata s jedne lokacije na novu lokaciju.
- algoritam :: count_if (): Ova funkcija vraća broj pojava pojedinih elemenata ako je ispunjen uvjet naveden u "ako je uvjet".
- algoritam :: jednak (): Ova funkcija testira jesu li dva skupa elemenata jednaka ili ne. U C ++ je unaprijed definirano puno sličnih funkcija koje koderi mogu tužiti u korist svog poslovanja.
Objašnjenje algoritma C ++
C ++ nudi verzije ovih algoritama u prostoru imena std :: range. Algoritmi su velika tema koja pokriva teme od pretraživanja, sortiranja do min / max gomile. Oni se mogu kategorizirati kao:
1. Heap: U takvim vrstama konstruiramo hrpu da bismo saznali max ili min vrijednost sekvence. Ovo je koristilo strukturu podataka stabala da bi se postigao njen rezultat.
2. Binarna pretraga: Ovaj C ++ algoritam dijeli čitav niz u dva dijela iterativno dok ne nađe stvarnu vrijednost koju tražimo iz ciljanog niza. To je vrlo učinkovit algoritam jer smanjuje vrijeme za pola. Preduvjet za korištenje ovog algoritma C ++ je da redoslijed koji mu je dostavljen treba razvrstati u bilo kojem redoslijedu.
3. Razvrstavanje: Postoje različite vrste sortiranja koje se mogu koristiti za generiranje sortirane sekvence. Oni su vrsta umetanja, sortiranje mjehurića, sortiranje sortiranja, sorta sortiranja, brza vrsta, sortiranje vrsta Neki od ovih algoritama djeluju na principu „podijeli i vladaj“ poput spajanja i brzog sortiranja. Oni su brzi i učinkoviti u usporedbi s drugima iako koriste više memorije u svom radu.
4. Jednostavne operacije u slijedu: Algoritmi se mogu koristiti za izvođenje jednostavnih operacija poput zamjene, uklanjanja, preokretanja brojeva u nizu. Mnogo je načina da se do ovog rezultata dođe pomoću različitih algoritama čiji je cilj postizanje istog rezultata.
5. Operacije bez izmjene: Neke operacije poput pretraživanja, pronalaska, brojanja broja elemenata u nizu. Ove operacije ne mijenjaju podatkovne vrijednosti elementa, ali funkcioniraju oko tih elemenata.
Primjer algoritama s koracima
Evo nekoliko primjera algoritma C ++ sa sljedećim koracima:
Primjer 1
Napisite algoritam C ++ da biste napisali program za dodavanje dva broja.
Algoritam
Koraci su dati u nastavku:
- Početak
- Prihvati broj1, broj 2
- Zbroj = broj1 + broj2
- Zbroj prikaza
- Stop
Primjer 2
Napišite algoritam C ++ da biste utvrdili je li student prošao ili nije na temelju ocjena. Ocjene su prosjek ukupnih ocjena dobivenih po svim predmetima.
Algoritam
Koraci su dati u nastavku:
- Početak
- Ulazna oznaka1, Oznake2, Oznake3, Oznake4
- Ocjena = (Oznake1 + Oznake2 + Oznake3 + Oznake4) / 4
- Ako (ocjena <50)
- Ispis "Neuspjelo"
- Drugo
- Ispis "Pass"
- Završi ako
- Stop
Primjer 3
Razvrstavanje mjehurića - Ovo je algoritam C ++ za sortiranje nizova brojeva u uzlaznom ili silaznom redoslijedu. Usporeduje najbliža dva broja i malu stavlja ispred većeg broja ako se razvrstava uzlaznim redoslijedom. Taj se postupak nastavlja sve dok ne postignemo niz u kojem pronađemo sve brojeve poredane u nizu.
Vremenska složenost ovog algoritma je O (n), jer kontrole moraju proći sav broj elemenata koji se nalaze u nizu i zatim provjeriti jesu li razvrstana dva susjedna broja. Ako ne, onda razvrstava i prelazi na druga dva susjedna para u nizu.
Provedba gornjeg C ++ algoritma
Evo primjera algoritma C ++ sa implementacijom koda danim u nastavku:
Kodirati:
#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;
)
Izlaz:
Zaključak
C ++ algoritam detaljni je detaljni vodič za rješenje, korak po korak, koji je osmišljen u fokusu kako bi pružio najučinkovitije i manje vremena za rješavanje bilo kojeg problema. Postoji mnogo alata za provjeru učinkovitosti algoritama poput velikih Oh notacija, Omega ili Gama zapisa koji su korisni za pronalaženje učinkovitosti algoritama. Svaki algoritam ima svoju privilegiju i prednosti i odabiremo ispravno rješenje prema tvrdnji problema. Ovo igra presudnu ulogu kada osmislimo rješenje problema, jer ono postaje osnova učinka finalnog proizvoda.
Preporučeni članci
Ovo je vodič za C ++ algoritam. Ovdje ćemo raspravljati o uvodu i detaljnom objašnjenju algoritma C ++, zajedno s različitim primjerima i implementacijom koda. Možete pogledati i sljedeće članke da biste saznali više -
- 3D nizovi u jeziku C ++
- Rust vs C ++
- Sažetak Razred C ++
- Preopterećenje i preglasavanje u C ++
- Izjava apstraktne klase u C # s primjerom