kamil-matula / AiSD

Algorytmy i Struktury Danych (sem. IV)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AiSD

Repozytorium zawiera implementacje popularnych algorytmów napisane w języku Python. Kody powstały w ramach przedmiotu Algorytmy i Struktury Danych realizowanego na IV semestrze nauki Informatyki na Politechnice Śląskiej.

Algorytmy podstawowe

  • algorytm wyszukiwania największego elementu w zbiorze,
  • algorytmy Odwrotnej Notacji Polskiej: konwersja wyrażenia z notacji infiksowej na postfiksową i z postfiksowej na infiksową.

Algorytmy obsługi masowej (funkcje obsługujące popularne struktury danych)

  • kolejka,
  • kolejka z priorytetem,
  • stos,
  • lista jednokierunkowa,
  • lista dwukierunkowa,
  • lista jednokierunkowa cykliczna,
  • lista jednokierunkowa z wartownikiem.

Algorytmy grafowe

  • algorytm Dijkstry,
  • algorytm Floyda,
  • algorytm BFS (breadth-first search, przeszukiwanie wstecz),
  • algorytm DFS (depth-first search, przeszukiwanie w głąb).

Algorytmy wyszukiwania wzorca

  • algorytm Knutha-Morrisa-Pratta (KMP),
  • algorytm Boyera-Moore'a (BM),
  • algorytm Karpa-Rabina (KR).

Algorytmy kodowania

  • szyfr Cezara,
  • algorytm Huffmana,
  • algorytm Shannona-Fano.

Algorytmy sortowania

  • sortowanie bąbelkowe (bubble sort),
  • sortowanie przez zliczanie (counting sort),
  • sortowanie przez kopcowanie (heap sort),
  • sortowanie przez scalanie (merge sort),
  • sortowanie szybkie (quick sort),
  • sortowanie Shella (shell sort).

Algorytmy heurystyczne

  • algorytm wyżarzania (simulated aneealing algorithm),
  • algorytm genetyczny (genetic algorithm),
  • algorytm ewolucji różnicowej (differential evolution),
  • algorytm kukułki (cuckoo search),
  • algorytm nietoperza (bat algorithm),
  • algorytm świetlika (firefly algorithm),
  • algorytm pszczeli (artificial bee colony algorithm),
  • algorytm mrówkowy (artificial ant colony algorithm),
  • algorytm roju cząstek (particle swarm optimization).

The Hive

Projekt The Hive powstał w ramach zaliczenia przedmiotu Algorytmy i Struktury Danych. Został napisany w językach Python oraz C# (z wykorzystaniem technologii WPF). Aplikacja ta jest przykładem wykorzystania algorytmu pszczelego i umożliwia wyszukanie minimum lub ekstremum jednej z trzech funkcji dla zadanego przedziału liczbowego. Przykład użycia aplikacji:

HiveExample

About

Algorytmy i Struktury Danych (sem. IV)


Languages

Language:Python 77.8%Language:C# 22.2%