Wstęp do algorytmów i struktur danych
Algorytmy i struktury danych dla zielonych
Description
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. 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.
What You Will Learn!
- Rodzaje zapisu algorytmów
- Rodzaje złożoności czasowej algorytmów
- Struktury danych, lista - własna implementacja
- Funkcje rekurencyjne, sortowania, kompresja, stosy, BFS, DFS
Who Should Attend!
- Dla początkujących programistów