Uvod v algoritem C ++
Končni niz korakov zaporedoma zaporedoma deluje kot vodnik za rešitev kakršne koli težave. Ta beseda algoritma c ++ se še posebej uporablja v računalništvu za določitev postopka za reševanje kompleksnih problemov. Arhitektura rešitve je lahko različna za različne algoritme. Najučinkovitejši algoritem je tisti, ki ponuja rešitev v krajšem času in porabi manj pomnilnika v primerjavi z drugimi algoritmičnimi rešitvami. V glavi C ++ so funkcije, ki so zasnovane za delovanje v številskih območjih. Te funkcije delujejo na številko, vendar ne manipulirajo s podatki. Deluje le, če iterira ali kaže na številke, ne da bi se dotaknil njegovih podatkov.
Nekatere funkcije člana pod glavo so:
- algoritem :: adjacent_find (): Pokaže prvi pojav dveh enakih zaporednih števil.
- algoritem :: all_of (): Vrne true, če so številke v območju prvega in zadnjega elementa.
- algoritem :: binary_search (): Preveri, ali je v razvrščenem zaporedju "vrednost, ki jo je treba iskati" prisotna ali ne.
- algoritem :: copy (): Ta funkcija pomaga pri kopiranju različnih elementov z ene lokacije na novo lokacijo.
- algoritem :: count_if (): Ta funkcija vrne število pojavov določenih elementov, če je pogoj, naveden v "če je pogoj", izpolnjen.
- algoritem :: enako (): Ta funkcija preizkuša, ali sta dva niza elementov enaka ali ne. V C ++ je vnaprej določenih veliko podobnih funkcij, ki jih lahko kodirniki tožijo v korist svojega poslovanja.
Pojasnilo algoritma C ++
C ++ ponuja različice teh algoritmov v imenskem prostoru std :: range. Algoritmi so obsežna tema, ki zajema teme od iskanja, razvrščanja do min / max skupin. Te lahko kategoriziramo kot:
1. Heap: V takih vrstah konstruiramo kopico, da ugotovimo max ali min vrednost zaporedja. S tem je uporabila podatkovno strukturo dreves za dosego svojih rezultatov.
2. Binarno iskanje: Ta algoritem C ++ iterativno deli celotno zaporedje na dva dela, dokler ne najde dejanske vrednosti, ki jo iščemo iz ciljnega zaporedja. Je zelo učinkovit algoritem, saj čas zmanjša za polovico. Predpogoj za uporabo tega algoritma C ++ je, da mora biti zaporedje, ki mu je dodeljeno, razvrščeno v poljubnem vrstnem redu.
3. Razvrščanje: Obstajajo različne vrste razvrščanja, ki se lahko uporabijo za ustvarjanje razvrščenega zaporedja. So sortiranje vstavljanja, razvrščanje mehurčkov, izbira sorta, vrsta razvrščanja, hitro razvrščanje, združevanje. Nekateri od teh algoritmov delujejo po načelu "deli in vladaj", kot sta združitev in hitro razvrščanje. Ti so v primerjavi z drugimi hitri in učinkoviti, čeprav za svoje delovanje uporabljajo več pomnilnika.
4. Enostavne operacije v zaporedju: Algoritme lahko uporabljate za izvajanje preprostih operacij, kot so zamenjava, odstranjevanje, preusmeritev števil v zaporedju. Obstaja veliko načinov, kako doseči ta izid z različnimi algoritmi, katerih vsi dosegajo enak rezultat.
5. Neizmenjujoče operacije: Nekatere operacije, kot so iskanje, iskanje, štetje števila elementov v zaporedju. Te operacije ne spreminjajo podatkovnih vrednosti elementa, ampak delujejo okoli teh elementov.
Primer algoritmov s koraki
Tu je nekaj primerov algoritma C ++ s spodnjimi koraki:
Primer # 1
Napišite algoritem C ++ in napišite program, ki mu dodate dve številki.
Algoritem
Spodaj so navedeni koraki:
- Začni
- Sprejmi num1, num 2
- Vsota = število1 + število2
- Prikaz vsote
- Nehaj
Primer # 2
Napišite algoritem C ++, da na podlagi ocen ugotovite, ali je študent opravil ali ne. Ocene so povprečje skupnih ocen pri vseh predmetih.
Algoritem
Spodaj so navedeni koraki:
- Začni
- Vhodne oznake1, oznake2, oznake3, oznake4
- Ocena = (Oznake1 + Oznake2 + Oznake3 + Oznake4) / 4
- Če (ocena <50), potem
- Natisni "Fail"
- Ostalo
- Natisni "Pass"
- Konec, če
- Nehaj
Primer # 3
Razporeditev mehurčkov - To je algoritem C ++ za razvrščanje zaporedja števil v naraščajočem ali padajočem vrstnem redu. Primerja najbližji dve številki, majhno pa postavi pred večjo številko, če se razvršča v naraščajočem vrstnem redu. Ta postopek se nadaljuje, dokler ne pridemo do zaporedja, kjer najdemo vse številke, razvrščene po zaporedju.
Časovna zapletenost tega algoritma je O (n), saj morajo kontrole preiti vse število elementov, ki so v zaporedju, in nato preveriti, ali sta razvrščeni 2 sosednji številki. Če ne, potem razvrsti in se premakne na druga dva sosednja para v seriji.
Izvedba zgornjega algoritma C ++
Tu je primer algoritma C ++ z implementacijo kode, naveden spodaj:
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;
)
Izhod:
Zaključek
C ++ algoritem je podroben korak za korakom splošni vodnik za rešitev, ki je zasnovan tako, da zagotavlja najučinkovitejšo in manj zamudno rešitev za vsako težavo. Učinkovitost algoritmov, kot so veliki Oh notaciji, Omega ali Gama zapiski, je koristno, da bi našli učinkovitost algoritmov. Vsak algoritem ima svoj privilegij in prednosti in izberemo ustrezno rešitev glede na izjavo problema. To ima ključno vlogo, ko oblikujemo rešitev za težavo, saj postane osnova učinkovitosti končnega izdelka.
Priporočeni članki
To je vodnik po algoritmu C ++. Tukaj razpravljamo o uvedbi in podrobni razlagi algoritma C ++, skupaj z različnimi primeri in implementacijo kode. Če želite izvedeti več, si oglejte tudi naslednje članke -
- 3D matriki v C ++
- Rust proti C ++
- Izvleček razreda C ++
- Preobremenitev in preglasitev v C ++
- Izjava abstraktnega razreda v C # s primerom