W dniu dzisiejszym, otwieram nową serię artykułów dla adeptów IT 🎉! Tym razem będzie to algorytmika 🥳! Dowiaduj się czym prędzej czego się spodziewać z mojej strony...na mojej stronie 😄! A będzie o czym pisać 😎!

ALGORYTMIKA OD DZISIAJ NA MOJEJ STRONIE!

Algorytmika jest jedną z gałęzi informatyki poświęconej algorytmom 😊. Algorytm to "przepis" na rozwiązanie określonego problemu poprzez wykonanie wielu poszczególnych kroków, jeden po drugim (więcej o samej definicji w osobnym artykule) 📖. Gdyby to rozbić na poszczególne zagadnienia, to skupia się na 4 najważniejszych punktach 👇:

  • poznawaniu algorytmów różnego rodzaju, takich jak sortowanie, wyszukiwanie, modyfikowanie i wiele innych,
  • poznawaniu struktur danych wraz z charakterystyką słabych i mocnych stron oraz zdolnością do samodzielnego wyboru najefektywniejszej z nich dla postawionego problemu,
  • rozróżnianiu mocnych i słabych stron algorytmów,
  • szacowaniu efektywności algorytmów od strony czasowej i pamięciowej (m.in. poprzez "notację dużego O").

Poza ogromnym zbiorem sprawdzonych i przetestowanych algorytmów przeróżnych zastosowań (od sortowania do znajdowania ścieżki na mapie), jest również pochylenie się nad znajomością struktur danych, które pozwala nam określić której najlepiej użyć w danej sytuacji.

Algorytmika zajmuje się także szacowaniem złożoności obliczeniowej, czyli określeniem "prędkości" (bądź zasobów pamięci) ile będzie potrzebnych danemu algorytmowi na rozwiązanie zadania, niezależnie od możliwości sprzętowych, jak i samego procka (tzw. notacja dużego O).

Jest to bardzo ważna dziedzina której nie wolno unikać, choćby z uwagi na szansę niemalże automatycznego "rozpoznania" rozwiązania problemu przed jakim stoimy w danym czasie, dzięki znajomości algorytmów 🌟. Uwierz mi, że jeżeli posiądziesz dostatecznie dużą wiedzę na temat algorytmiki, to na część problemów projektowych będziesz przygotowany(-a), zanim do niego usiądziesz, bo już będziesz znać "przepis" na jego rozwiązanie 🤩!

SERIA W DUŻYM UPROSZCZENIU

Teraz dwa słowa o samej serii jaką będę się zajmował. Oprócz terminologii i teorii (choćby na temat samego pojęcia "algorytm"), będą występować artykuły koncentrujące się na jakimś konkretnym problemie/algorytmie (np. problem plecakowy). Wtedy takie zagadnienie zostanie podzielone na 2 części 👇:

  • wyjaśnienie teoretyczne,
  • przykładowy program z algorytmem rozwiązującym dany problem w języku Java.

Javę wybrałem nie dlatego, że jest powszechnie używana i jest jednym z najpopularniejszych języków, tylko dlatego, że nie posiada aż takich abstrakcyjnych wygód jakimi może pochwalić się na przykład Python, dzięki czemu można będzie wyjaśnić jakieś skróty myślowe i pokazać jakie konkretne operacje trzeba zaimplementować, aby uzyskać ten sam efekt i żeby nasz cel został osiągnięty (jednak też na drugiej szali połóż, żeby nie programować wskaźników w języku C 😝) 🎯. Oczywiście wszystkie kody źródłowe będą dodatkowo wyjaśniane, aby nie pozostawiały najmniejszych wątpliwości 👍.

Algorytmy wbrew pozorom, są rozległą dziedziną wiedzy ze względu na ogromną liczbę rozwiązywalnych (jak i nierozwiązywalnych) problemów, stąd też nie da się ustalić ile materiału mogę opublikować 🧠. W przypadku mojego redagowania, to będzie "sky is the limit" 😁!


To tyle 🙂! Do zobaczenia w pierwszym materiale o algorytmice, w którym zaczniemy od samego początku - czyli od terminu "algorytm" 😯!