Bevezetés a C ++ algoritmusba
A sorrendben elrendezett véges lépések, amelyek útmutatóként szolgálnak minden probléma megoldásához. Ezt a c ++ algoritmusszót különösen a számítástechnikában használják az összetett problémák megoldására szolgáló eljárás meghatározására. A megoldás architektúrája különböző algoritmusokonként eltérő lehet. A leghatékonyabb algoritmus az, amely kevesebb idő alatt nyújt megoldást, és kevesebb memóriát fogyaszt, összehasonlítva más algoritmikus megoldásokkal. A C ++ fejléc a számtartományok működésére tervezett funkciókat tartalmazza. Ezek a funkciók a számon működnek, de nem végeznek manipulációt az adatokkal. Csak úgy működik, hogy ismétlődik, vagy mutat a számokra, anélkül, hogy megérintené az adatait.
Néhány fejléc alatti függvény a következő:
- algoritmus :: szomszédos_megoldás (): Két azonos egymást követő szám első előfordulását jelzi.
- algoritmus :: all_of (): Igaz, ha a számok az első és az utolsó tartomány alá esnek.
- algoritmus :: binary_search (): Ellenőrzi, hogy a „keresendő érték” jelen van-e a rendezett sorrendben.
- algoritmus :: copy (): Ez a funkció elősegíti az elemek sorozatának másolását az egyik helyről az új helyre.
- algoritmus :: count_if (): Ez a függvény az egyes elemek előfordulásának számát adja vissza, ha az „ha feltétel” -ben említett feltétel teljesül.
- algoritmus :: egyenlő (): Ez a függvény teszteli, hogy két elemcsoport azonos-e vagy sem. Nagyon sok hasonló funkció van előre definiálva a C ++-ban, amelyeket a kódolók beperelhetnek üzleti tevékenységük előnyei érdekében.
A C ++ algoritmus magyarázata
A C ++ ezen algoritmusok verzióit nyújtja a névtér std :: tartományokban. Az algoritmusok az a hatalmas téma, amely a kereséstől, a rendezéstől a min / max halomig terjedő témákra terjed ki. Ezeket az alábbiak szerint lehet besorolni:
1. Halom: Ilyen típusokban halomot építünk fel, hogy megtudjuk a szekvencia maximális vagy minimális értékét. Ez a fák adatszerkezetét használja a kimenet eléréséhez.
2. Bináris keresés: Ez a C ++ algoritmus a teljes szekvenciát iteratíven osztja két részre, amíg meg nem találja a tényleges értéket, amelyet a célzott szekvencia alapján keresünk. Nagyon hatékony algoritmus, mivel felére csökkenti az időt. Ennek a C ++ algoritmusnak az alkalmazásának előfeltétele, hogy az neki biztosított szekvenciát bármilyen sorrendben kell rendezni.
3. Rendezés: Különböző típusú rendezés létezik, amely felhasználható a rendezett sorozat előállítására. Ezek beszúrási, buborékos, válogatási, halom-, gyors-, egyesítési és rendezési. Ezen algoritmusok némelyike a „megosztás és szabályzás” elvén működik, mint például az egyesítés és a gyors rendezés. Ezek gyorsak és hatékonyak, mint mások, bár több memóriát használnak a műveletek során.
4. Egyszerű műveletek a szekvencia alatt: Az algoritmusok egyszerű műveletek végrehajtására használhatók, például a számok cseréjére, eltávolítására és visszafordítására egy sorozatban. Sokféle módon érheti el ezt a kimenetet különböző algoritmusok felhasználásával, amelyek mindegyikének célja ugyanaz a kimenet.
5. Nem módosító műveletek: Egyes műveletek, például a keresés, a keresés, a számlálás az elemek számát a sorozatban. Ezek a műveletek nem módosítják az elem adatértékeit, hanem ezen elemek körül működnek.
Példa az algoritmusok lépéseivel
Íme néhány példa a C ++ algoritmusra, az alábbiakban bemutatott lépésekkel:
1. példa
Írj egy C ++ algoritmust két szám hozzáadásához szükséges program írásához.
Algoritmus
A lépések az alábbiakban találhatók:
- Rajt
- Fogadja el a 1. és 2. számot
- Összeg = num1 + num2
- Kijelző összeg
- Állj meg
2. példa
Írj egy C ++ algoritmust annak megállapításához, hogy a hallgató sikeres-e vagy sem, az osztályzatok alapján. A fokozat az összes tantárgy összesített pontszámának átlaga.
Algoritmus
A lépések az alábbiakban találhatók:
- Rajt
- Bemeneti jelölések1, Marks2, Marks3, Marks4
- Fokozat = (Marks1 + Marks2 + Marks3 + Marks4) / 4
- Ha (fokozat <50), akkor
- Nyomtatás “Fail”
- Más
- Nyomtatás “Pass”
- Vége, ha
- Állj meg
3. példa
Buborék rendezése - Ez a C ++ algoritmus a számsorrend növekvő vagy csökkenő sorrendbe rendezésére. Összehasonlítja a legközelebbi két számot, és növekvő sorrendben a kicsit egy nagyobb szám elé helyezi. Ez a folyamat addig folytatódik, amíg el nem érjük a sorozatot, ahol megtaláljuk az összes számot egymás után rendezve.
Ennek az algoritmusnak az idő bonyolultsága O (n), mivel a vezérlőknek át kell menniük a sorban lévő elemek összes számát, majd ellenőrizniük kell, hogy 2 szomszédos szám van-e rendezve. Ha nem, akkor szétválogat, és a sorozat másik két szomszédos párjára lép.
A fenti C ++ algoritmus megvalósítása
Itt található a példa a C ++ algoritmusra, a kód implementációjával:
Kód:
#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;
)
Kimenet:
Következtetés
A C ++ algoritmus egy részletes, lépésről lépésre átfogó megoldási útmutató, amelynek célja a figyelem összpontosítása, hogy a felmerülő problémákra a leghatékonyabb és kevésbé időigényes megoldást biztosítsa. Számos eszköz létezik az algoritmusok hatékonyságának ellenőrzésére, például a nagy Oh jelölések, az Omega vagy a Gama jelölések, amelyek hasznosak az algoritmusok hatékonyságának megtalálásához. Minden algoritmusnak megvannak a maga kiváltságai és előnyei, és a problémamegfogalmazásnak megfelelően kiválasztjuk a megfelelő illesztési megoldást. Ez döntő szerepet játszik a probléma megoldásának megtervezésében, mivel ez a végtermék teljesítményének alapjául szolgál.
Ajánlott cikkek
Ez egy útmutató a C ++ algoritmushoz. Itt tárgyaljuk a C ++ algoritmus bevezetését és részletes magyarázatát, a különféle példákkal és a kód megvalósításával együtt. A következő cikkeket is megnézheti további információkért -
- 3D tömbök C ++ formátumban
- Rozsda vs C ++
- C ++ absztrakt osztály
- Túlterhelés és felülbírálás a C ++-ban
- Absztrakt osztály deklarálása a C # példában