Tematy projektów

by Daniel Kaczmarski published 2019/02/27 10:18:30 GMT+2, last modified 2019-02-27T10:18:30+02:00

Projekt polega na przeanalizowaniu wybranego złożonego algorytmy lub przeprowadzeniu analizy porównawczej dwóch prostszych algorytmów. W tym celu należy napisać program, który na przykładzie niewielkiej liczby elementów losowych pokazuje działanie algorytmu/algorytmów, np. wyświetlanie danych po każdym znaczącym kroku algorytmu z zaznaczeniem elementów charakterystycznych.

Zmieniając liczbę danych (przy losowym uporządkowaniu) i uporządkowanie danych (przy stałej ich liczbie) w programie należy zliczyć liczbę kluczowych operacji (np. liczbę porównań liczb, liczbę zamian liczb, liczbę odwiedzonych węzłów grafu, liczbę iteracji przejść listy, itp.). Analizę można uzupełnić pomiarem czasu wykonywania operacji. Wyniki zaprezentować w sprawozdaniu w formie tabel i wykresów (w zależności od liczby danych oraz ich uporządkowania), uzupełniając wnioskami.

 

Propozycje tematów projektowych:

Na ocenę 3: 

      1. Algorytmy sortowania tablic:
        1. a) Sortowanie przez proste wstawianie, proste wybieranie i prostą zamianę
          b) Sortowanie przez proste wstawianie i wstawianie połówkowe
          c) Sortowanie bąbelkowe ze wszystkimi jego udoskonaleniami (bez quicksort)
          d) Sortowanie przez proste wstawianie i metodą Shella
          e) Sortowanie przez proste wybieranie i przez kopcowanie
          f) Sortowanie bąbelkowe i quicksort
          g) Sortowanie metodą Shella i przez kopcowanie
          h) Sortowanie metodą Shella i quicksort
      2. Algorytmy sortowania plików:
        1. a) Sortowanie polifazowe plików
      3. Algorytmy kompresji:
        1. a) Metoda Huffmana
          b) LZ77
          c) LZ78

 

Na ocenę 4:

 

      1. Szyfr Cezara i szyfr Vigenère'a;
      2. Algorytm konika szachowego;
      3. Odwrotna notacja polska;
      4. Algorytmy mieszania:
        1. a) Składanie z przesuwaniem i składanie brzegami
          b) Środek kwadratu i wycinanie
          c) Zamiana podstawy i dzielenie
      5. Algorytmy zapobiegania kolizji:
        1. a) Metoda łańcuchów osobnych i łańcuchów połączonych
          b) Szukanie liniowe i mieszanie podwójne
          c) Szukanie liniowe i metoda łańcuchów połączonych
          d) Metoda łańcuchów połączonych z obszarem nadmiarowym i bez obszaru nadmiarowego
          e) Adresowanie kubełkowe z obszarem nadmiarowym i bez obszaru nadmiarowego

   

Na ocenę 5:

    1. Obliczanie wyrażeń arytmetycznych z użyciem drzewa;
    2. Algorytmy działające na grafach:
      1. a) Problem trwałego małżeństwa;
        b) Problem komiwojażera;
        c) Algorytm Floyda;
        d) Algorytm Fluery'ego;
        e) Metoda DFS przeszukiwania grafu;
        f) Metoda BFS przeszukiwania grafu;
    3. Drzewach wyższych rzędów:
      1. a) Uniwersalna struktura słownikowa - wstawianie, usuwanie, wyszukiwanie
        b) Drzewo trie - wstawianie, usuwanie, wyszukiwanie
        c) Drzewo wielokierunkowe - wstawianie, usuwanie, wyszukiwanie
        d) B drzewo - wstawianie, usuwanie, wyszukiwanie
        e) B+ drzewo - wstawianie, usuwanie, wyszukiwanie
        f) Drzewo BST - wstawianie, usuwanie, wyszukiwanie
    4. Algorytmy z grafiki komputerowej:
      1. a) Metoda z punktem środkowym rysowania odcinków
        b) Metoda z punktem środkowym rysowania okręgów
        c) Algorytm wypełniania rekurencyjnego 2D