Algorytm C ++ - Przykłady algorytmu C ++ z objaśnieniem szczegółowym

Spisie treści:

Anonim

Wprowadzenie do algorytmu C ++

Skończony zestaw kroków ułożonych po kolei, który służy jako przewodnik do rozwiązania każdego problemu. To słowo algorytmu c ++ jest szczególnie używane w informatyce do definiowania procedury rozwiązywania złożonych problemów. Architektura rozwiązania może być różna dla różnych algorytmów. Najbardziej wydajnym algorytmem jest ten, który zapewnia rozwiązanie w krótszym czasie i zużywa mniej pamięci w porównaniu do innych rozwiązań algorytmicznych. W nagłówku C ++ zawiera funkcje zaprojektowane do działania na zakresach liczb. Funkcje te działają na liczbie, ale nie manipulują danymi. Działa tylko podczas iteracji lub wskazywania liczb bez dotykania ich danych.

Niektóre funkcje składowe pod nagłówkiem to:

  • algorytm :: adjacent_find (): Wskazuje pierwsze wystąpienie dwóch identycznych kolejnych liczb.
  • algorytm :: all_of (): Zwraca true, jeśli liczby mieszczą się w zakresie pierwszego i ostatniego elementu.
  • algorytm :: binary_search (): Sprawdza, czy „szukana wartość” występuje w posortowanej sekwencji, czy nie.
  • algorytm :: copy (): Ta funkcja pomaga w kopiowaniu zakresu elementów z jednej lokalizacji do nowej lokalizacji.
  • algorytm :: count_if (): Ta funkcja zwraca liczbę wystąpień poszczególnych elementów, jeśli warunek wymieniony w „if warunek” jest spełniony.
  • algorytm :: równe (): Ta funkcja sprawdza, czy dwa zestawy elementów są równe, czy nie. Istnieje wiele podobnych funkcji predefiniowanych w C ++, które mogą być wykorzystywane przez programistów na korzyść ich działalności.

Objaśnienie algorytmu C ++

C ++ udostępnia wersje tych algorytmów w przestrzeni nazw std :: przedziały. Algorytmy to obszerny temat, który obejmuje tematy od wyszukiwania, sortowania do hałd min / maks. Można je podzielić na następujące kategorie:

1. Sterty: W takich typach budujemy stertę, aby znaleźć maksymalną lub minimalną wartość sekwencji. W tym celu wykorzystano strukturę danych drzew do uzyskania danych wyjściowych.

2. Wyszukiwanie binarne: Ten algorytm C ++ dzieli całą sekwencję iteracyjnie na dwie części, dopóki nie znajdzie rzeczywistej wartości, której szukamy, od sekwencji docelowej. Jest to wysoce skuteczny algorytm, ponieważ zmniejsza czas o połowę. Wstępnym warunkiem korzystania z tego algorytmu C ++ jest uporządkowanie sekwencji w podanej kolejności.

3. Sortowanie: Istnieją różne rodzaje sortowania, których można użyć do wygenerowania posortowanej sekwencji. Są to: sortowanie wstawiane, sortowanie bąbelkowe, sortowanie selekcyjne, sortowanie sterty, sortowanie szybkie, sortowanie scalone. Niektóre z tych algorytmów działają na zasadzie „dziel i rządź”, jak scalanie i szybkie sortowanie. Są one szybkie i wydajne w porównaniu do innych, chociaż zużywa więcej pamięci w swoich operacjach.

4. Proste operacje na sekwencji: Algorytmy mogą być używane do wykonywania prostych operacji, takich jak zamiana, usuwanie, odwracanie liczb w sekwencji. Istnieje wiele sposobów na osiągnięcie tego wyniku przy użyciu różnych algorytmów, których celem jest osiągnięcie tego samego wyniku.

5. Operacje niemodyfikujące: Niektóre operacje, takie jak wyszukiwanie, znajdź, policz liczbę elementów w sekwencji. Te operacje nie modyfikują wartości danych elementu, ale działają wokół tych elementów.

Przykład algorytmów z krokami

Oto kilka przykładów algorytmu C ++ z krokami wyjaśnionymi poniżej:

Przykład 1

Napisz algorytm C ++, aby napisać program dodający dwie liczby.

Algorytm

Kroki podano poniżej:

  1. Początek
  2. Zaakceptuj num1, num 2
  3. Suma = num1 + num2
  4. Wyświetl sumę
  5. Zatrzymać

Przykład nr 2

Napisz algorytm C ++, aby ustalić, czy uczeń zalicza lub nie zalicza się na podstawie ocen. Oceny są średnią wszystkich ocen uzyskanych ze wszystkich przedmiotów.

Algorytm

Kroki podano poniżej:

  1. Początek
  2. Input Marks1, Marks2, Marks3, Marks4
  3. Ocena = (oceny 1 + oceny 2 + oceny 3 + oceny 4) / 4
  4. Jeśli (stopień <50), to
  5. Drukuj „Fail”
  6. Jeszcze
  7. Drukuj „Pass”
  8. Zakończ jeśli
  9. Zatrzymać

Przykład nr 3

Sortowanie bąbelkowe - jest to algorytm C ++ do sortowania sekwencji liczb w porządku rosnącym lub malejącym. Porównuje dwie najbliższe liczby i umieszcza małą przed większą liczbą, jeśli sortuje w kolejności rosnącej. Proces ten trwa, dopóki nie osiągniemy sekwencji, w której znajdziemy wszystkie liczby posortowane w sekwencji.

Złożoność czasowa tego algorytmu wynosi O (n), ponieważ kontrole muszą przejść przez całą liczbę elementów znajdujących się w sekwencji, a następnie sprawdzić, czy posortowane są 2 sąsiednie liczby. Jeśli nie, sortuje i przenosi do pozostałych dwóch sąsiednich par w serii.

Implementacja powyższego algorytmu C ++

Oto przykład algorytmu C ++ z implementacją kodu podanego poniżej:

Kod:

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

Wynik:

Wniosek

Algorytm C ++ to szczegółowy ogólny przewodnik po krokach, który został zaprojektowany z myślą o zapewnieniu najbardziej wydajnego i mniej czasochłonnego rozwiązania każdego dostarczonego problemu. Istnieje wiele narzędzi do sprawdzania wydajności algorytmów, takich jak duża notacja Oh, notacje Omega lub Gama, które są przydatne do znalezienia skuteczności algorytmów. Każdy algorytm ma swoje przywileje i zalety, dlatego wybieramy odpowiednie rozwiązanie zgodne z opisem problemu. Odgrywa to kluczową rolę, gdy projektujemy rozwiązanie problemu, ponieważ staje się ono podstawą wydajności produktu końcowego.

Polecane artykuły

Jest to przewodnik po algorytmie C ++. Tutaj omawiamy wprowadzenie i szczegółowe wyjaśnienie algorytmu C ++ wraz z różnymi przykładami i implementacją kodu. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Tablice 3D w C ++
  2. Rust vs C ++
  3. Klasa abstrakcyjna w C ++
  4. Przeładowanie i przesłonięcie w C ++
  5. Deklarowanie klasy abstrakcyjnej w C # z przykładem