Algorytmy - definicja, przykłady, implementacja i sposoby prezentacji
Algorytmy są wśród nas
Mimo, że definicję algorytmu już znasz, podejrzewam, że nie zdajesz sobie jeszcze sprawy, jak często wykorzystujesz algorytmy. Czy wiesz, że z różnych algorytmów korzystasz kilkadziesiąt lub kilkaset razy dziennie?
Algorytmy są dosłownie wszędzie. Algorytmem jest lista czynności prowadząca do zrobienia kanapki czy sposób przejścia przez ulicę. Algorytmem są też czynności prowadzące do zawiązania sznurówki w bucie. Przykłady można by mnożyć w nieskończoność, mam jednak nadzieję, że już Cię przekonałem, że algorytm to nie jest coś związanego z komputerem i każdy ma z nim styczność.
Algorytmy w informatyce
Mimo że algorytmy występują rzeczywiście wszędzie, to jednak najczęściej uświadamiamy sobie o ich istnieniu dopiero, gdy musimy zrealizować jakiś algorytm w danym języku programowania. Algorytmika jest tak naprawdę bardzo ściśle powiązana z programowaniem. Trzeba sobie jednak zdawać sprawę że to nie to samo.
Algorytm mówi jak coś zrealizować. Jest to jakby pewien szablon, który można wykorzystać wszędzie, nie tylko w programowaniu. Natomiast program jest to realizacja algorytmu. Nawet najprostszy program nie powstanie bez algorytmu, natomiast algorytm istnieje nawet jeśli nie został zrealizowany w żadnym języku programowania.
Bardzo często używa się pojęcia implementacja. Implementacja jest to właśnie realizacja algorytmu w danym, konkretnym języku programowania. Dodatkowo implementacja jest to również sposób realizacji algorytmu w danym języku programowania. Może się bowiem zdarzyć, że dany algorytm można zrealizować gorzej lub lepiej w danym języku programowania.
Algorytm a implementacja
Pragnę jeszcze raz zwrócić Twoją uwagę na to co napisałem w poprzednim akapicie: dany algorytm można zrealizować gorzej lub lepiej w danym języku programowania.
Możesz sobie pomyśleć - jak to? - przecież algorytm miał być w miarę dokładną listą czynności za pomocą których da się zrealizować dane zagadnienie.
Implementacje algorytmu mogą różnić się między sobą chociażby dlatego, że algorytm nie zawsze opisuje dokładnie wszystkie kroki, o czym wspominałem już na początku artykułu. Niekiedy korzysta z algorytmów składowych. Oczywiście nie wiadomo jaki algorytm składowy ktoś wykorzysta, w szczególności czy będzie to wydajny algorytm.