28/02/2022
W dzisiejszym cyfrowym świecie, algorytmy są wszechobecne. Stanowią fundament informatyki i programowania, a ich zrozumienie jest kluczowe dla każdego, kto chce zgłębić tajniki technologii. Czym właściwie są algorytmy i jakie typy algorytmów wyróżniamy? Ten artykuł, będący częścią cyklu „Algorytmy dla uczniów”, ma za zadanie wprowadzić Cię w świat algorytmów w sposób przystępny i zrozumiały, nawet jeśli dopiero zaczynasz swoją przygodę z informatyką.

Podstawowe rodzaje algorytmów
Możemy wyróżnić kilka podstawowych rodzajów algorytmów, które różnią się strukturą i sposobem działania. Najczęściej spotykane to:
- Algorytmy liniowe (sekwencyjne)
- Algorytmy warunkowe (z rozgałęzieniami)
- Algorytmy iteracyjne (cykliczne, z pętlą)
- Algorytmy rekurencyjne
Przyjrzyjmy się bliżej każdemu z tych rodzajów.

Algorytmy liniowe (sekwencyjne)
Algorytm liniowy, zwany również sekwencyjnym, to najprostszy typ algorytmu. Charakteryzuje się on tym, że instrukcje wykonywane są jedna po drugiej, w kolejności, w jakiej zostały zapisane. Nie ma tu żadnych warunków ani pętli – algorytm przebiega prosto od początku do końca.
Przykład algorytmu liniowego: Zaproszenie koleżanki na ciasto przez telefon
Wyobraźmy sobie, że chcemy telefonicznie zaprosić koleżankę na ciasto. Załóżmy, że znamy numer telefonu i połączenie zostanie nawiązane bez problemów. Jak mógłby wyglądać algorytm takiego zaproszenia?
- Podnieś słuchawkę.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 2.
- Wybierz cyfrę 2.
- Wybierz cyfrę 8.
- Wybierz cyfrę 8.
- Przekaż informację (np. „Cześć [imię koleżanki], zapraszam Cię na ciasto!”).
- Odłóż słuchawkę.
Jak widzisz, algorytm ten składa się z prostych kroków, wykonywanych sekwencyjnie. Każdy krok jest wykonywany tylko raz, a kolejność ich wykonania jest ściśle określona.
Algorytmy warunkowe (rozgałęzione)
W rzeczywistości, algorytmy rzadko są tak proste jak algorytmy liniowe. Często musimy podejmować decyzje w zależności od pewnych warunków. W takich sytuacjach stosujemy algorytmy warunkowe, inaczej zwane algorytmami rozgałęzionymi. W algorytmach warunkowych, wykonanie pewnych instrukcji zależy od tego, czy dany warunek jest spełniony, czy nie.
Przykład algorytmu warunkowego: Ulepszone zaproszenie z uwzględnieniem zajętego numeru
Poprawmy nasz wcześniejszy algorytm zapraszania koleżanki, uwzględniając sytuację, gdy numer jest zajęty lub połączenie jest błędne.
- Podnieś słuchawkę.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 2.
- Wybierz cyfrę 2.
- Wybierz cyfrę 8.
- Wybierz cyfrę 8.
- Czy połączyłeś się z koleżanką?
- Jeśli TAK, to przejdź do kroku 10.
- Jeśli NIE, to przejdź do kroku 11.
- Zaproś koleżankę.
- Odłóż słuchawkę.
W tym algorytmie, po wybraniu numeru, pojawia się instrukcja warunkowa. Sprawdzamy, czy połączenie zostało nawiązane. Jeśli tak, wykonujemy krok 10 (zaproszenie). Jeśli nie, wykonujemy krok 11 (odłożenie słuchawki), co w tym uproszczonym przykładzie oznacza zakończenie algorytmu w przypadku niepowodzenia.
Algorytmy iteracyjne (cykliczne, z pętlą)
Kolejnym ważnym rodzajem algorytmów są algorytmy iteracyjne, nazywane również cyklicznymi lub algorytmami z pętlą. Algorytmy te pozwalają na wielokrotne powtarzanie pewnych sekwencji instrukcji. Jest to niezwykle przydatne, gdy chcemy wykonać daną czynność wiele razy, bez konieczności wielokrotnego zapisywania tych samych kroków.
Instrukcja iteracyjna ze znaną liczbą powtórzeń
W algorytmach iteracyjnych możemy mieć sytuację, gdy z góry wiemy, ile razy dana sekwencja instrukcji ma być powtórzona. W takim przypadku stosujemy pętle ze znaną liczbą powtórzeń.
Przykład algorytmu iteracyjnego ze znaną liczbą powtórzeń: Ulepszone wybieranie numeru
W naszym przykładzie zapraszania koleżanki, zauważmy, że kroki wybierania cyfry 2, 2, 8, 8 powtarzają się. Możemy to uprościć, stosując pętlę.
- Podnieś słuchawkę.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wykonaj czynność 4 razy: Wybierz cyfrę 2.
- Czy połączyłeś się z koleżanką?
- Jeśli TAK, to przejdź do kroku 7.
- Jeśli NIE, to przejdź do kroku 8.
- Zaproś koleżankę.
- Odłóż słuchawkę.
W tym przykładzie użyliśmy pętli, aby uprościć zapis wielokrotnego wybierania cyfry 2. Zamiast pisać „Wybierz cyfrę 2” cztery razy, użyliśmy instrukcji „Wykonaj czynność 4 razy: Wybierz cyfrę 2.”
Instrukcja iteracyjna z warunkiem kontynuacji
Często jednak nie znamy z góry liczby powtórzeń pętli. W takich przypadkach stosujemy pętle z warunkiem. Pętla taka wykonuje się dopóty, dopóki określony warunek jest spełniony. Gdy warunek przestaje być spełniony, pętla kończy swoje działanie.
Przykład algorytmu iteracyjnego z warunkiem: Dzwonienie do skutku
Rozbudujmy nasz algorytm, aby uwzględnić sytuację, w której numer jest zajęty i musimy próbować dzwonić, aż do skutku.
- Czy słuchawka jest odłożona?
- Jeśli TAK, to przejdź do kroku 2.
- Jeśli NIE, to odłóż słuchawkę.
- Podnieś słuchawkę.
- Czy linia jest zajęta?
- Jeśli TAK, to:
- Odłóż słuchawkę.
- Podnieś słuchawkę.
- Przejdź do kroku 3.
- Jeśli NIE, to przejdź do kroku 4.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wybierz cyfrę 6.
- Wykonaj czynność 4 razy: Wybierz cyfrę 2.
- Czy połączyłeś się z koleżanką?
- Jeśli TAK, to przejdź do kroku 9.
- Jeśli NIE, to przejdź do kroku 1.
- Zaproś koleżankę.
- Odłóż słuchawkę.
W tym algorytmie wprowadziliśmy pętlę, która sprawdza, czy linia jest zajęta. Dopóki linia jest zajęta, algorytm powtarza kroki odkładania i ponownego podnoszenia słuchawki oraz sprawdzania linii. Dopiero gdy linia jest wolna, algorytm przechodzi do wybierania numeru.
Algorytmy rekurencyjne
Ostatnim rodzajem algorytmów, o którym warto wspomnieć, są algorytmy rekurencyjne. Rekurencja to technika programowania, która polega na wywoływaniu funkcji przez samą siebie. Algorytmy rekurencyjne są szczególnie przydatne do rozwiązywania problemów, które można podzielić na mniejsze, podobne podproblemy. Temat rekurencji jest nieco bardziej zaawansowany i nie będziemy go szczegółowo omawiać w tym artykule dla początkujących.
Podsumowanie
Poznaliśmy podstawowe rodzaje algorytmów: liniowe, warunkowe, iteracyjne i rekurencyjne. Każdy z nich ma swoje zastosowanie i charakterystyczną strukturę. Zrozumienie tych typów algorytmów jest fundamentem do dalszej nauki programowania i rozwiązywania problemów algorytmicznych. Pamiętaj, że ten artykuł to tylko wstęp do fascynującego świata algorytmów. Zachęcamy Cię do dalszego zgłębiania wiedzy, korzystając z kolejnych lekcji z cyklu „Algorytmy dla uczniów”.
Ten artykuł jest częścią cyklu „Algorytmy dla uczniów”. Cały kurs zawierający materiały dotyczące algorytmów dla początkujących zawiera:
- Lekcja 1: Co to jest algorytm? Podstawy algorytmów
- Lekcja 2: Sposoby zapisu algorytmów
- Lekcja 3: Rodzaje algorytmów
- Lekcja 4: Schematy blokowe algorytmów
- Lekcja 5: Specyfikacja algorytmu. Specyfikacja problemu algorytmicznego
- Lekcja 6: Algorytmy Przykłady i zadania
- Lekcja 6.1: Algorytmy. Przykłady i zadania. Obliczanie pola trójkąta
- Lekcja 6.2: Algorytmy. Przykłady. Algorytm Euklidesa
- Lekcja 6.3: Algorytm. Gra Kamień Papier Nożyce
- Lekcja 7. Przykłady schematów blokowych. Ciągi liczb
- Lekcja 8. Sortowanie – algorytmy sortowania
- Lekcja 9: Algorytmy. Tablice jednowymiarowe
- Lekcja 10. Algorytmy. Tablice dwuwymiarowe
Jeśli chcesz poznać inne artykuły podobne do Rodzaje algorytmów w informatyce dla początkujących, możesz odwiedzić kategorię Edukacja.
