WSTĘP DO ALGORYTMÓW I STRUKTUR DANYCH

Zanim zaczniemy rozwiązywać jakiś problem, musimy mieć pomysł na jego rozwiązanie. Tutaj rodzi się potrzeba ujednolicenia sposobu zapisu toku rozumowania związanego z programem komputerowym. Podczas realizacji tego przedmiotu nauczysz się tworzyć rozwiązanie problemu w sposób niezależny od języka programowania, a jednocześnie poznasz wiele algorytmów z przykładami użycia w konkretnych językach programowania. Poznasz m.in. struktury danych, jak tablice, listy i kolejki, funkcje rekurencyjne, metody sortowania oraz kompresji. Ta wiedza i umiejętności zaowocują mocno przede wszystkim w ten sposób, że dadzą Ci narzędzia i kompetencje do rozwiązywania problemów/zadań programistycznych. 



Lista zagadnień:


Wprowadzenie do algorytmów, rodzaje zapisu algorytmów 

Dowiemy się, czym jest algorytm, z czego się składa. Poznamy sposoby zapisu algorytmu. Omówimy każdy z nich, natomiast uwagę skupimy na schemacie blokowym.


Rodzaje złożoności czasowej algorytmu

Nowa porcja wiedzy o algorytmach. Więc zaczynamy od szacowania efektywności algorytmu, poznamy pojęcie logarytmu, poznamy dwa sposoby wyszukiwania (prosty i binarny), poznamy notację dużego O i poznamy kilka złożoności algorytmu.  


Struktury danych tablice, lista - własna implementacja

Poznamy dokładniej czym jest tablica i lista, oczywiście w odniesieniu do struktur danych. Poznamy mocne i słabe stron każdej z nich. Żeby dobrze zrozumieć działanie listy, napiszemy własną jej implementacje.


Funkcje rekurencyjne

Przed nami bardzo ważne zagadnienie, którym jest funkcja rekurencyjna. Zrozumienie tego zagadnienia jest bardzo ważne w dalszej nauce programowania. 


Sortowanie bąbelkowe

Jedną z metod sortowania jest sortowanie bąbelkowe. W tym materiale przedstawię jak wygląda ta prosta metoda sortowania.


Sortowanie szybkie

Drugą metodą sortowania którą poznamy będzie sortowanie szybkie. Jeśli chodzi o sortowanie szybkie wymaga ono trochę więcej czasu, żeby zrozumieć na czym to polega. Ważne jest zrozumienie tej metody, dlatego napiszemy jej implementacje.


Algorytm Huffmana - kompresja

Kodowanie Huffmana – jedna z najprostszych i łatwych w implementacji metod kompresji bezstratnej. Została opracowana w 1952 roku przez Amerykanina Davida Huffmana. Poznamy tę metodę właśnie w tym materiale.


Kompresja arytmetyczna

Kodowanie arytmetyczne – metoda kodowania została wynaleziona przez Petera Eliasa około 1960 roku. Warto zobaczyć co można ukryć w liczbie z przedziału 1-0 :)


Struktury Stos

Zobaczymy czym jest stos oraz dowiemy się co to jest tablica asocjacyjna oparta o funkcję skrótów.


Kolejka, przeszukiwanie grafu wszerz (BFS)

Nadszedł czas na kolejkę, ale nie taką do kasy biletowej w kinie tylko strukturę danych o takiej nazwie. Dodatkowo poznamy algorytm przeszukiwania grafu wszerz (BFS). Napiszemy oczywiście implementacje tego algorytmu.


Grafy - przeszukiwanie w głąb (DFS)

Ostatnim zagadnieniem będzie algorytm przeszukiwania grafu w głąb (DFS). Jest to inna forma przechodzenia przez wszystkie wierzchołki grafu.