Knihovna vybraných algoritmů typu "rozděl a panuj"
Knihovna vybraných algoritmů je nedílnou součástí bakalářské práce. Projekt přibližuje fungování převážně rekurzivních algoritmů. Na náhodně generovaných datech byla měřene doba běhu jednotlivých algoritmů a výsledky měření byly prezentovány v rámci závěrečné práce. Výsledky sloužili k propojení teoretického odhadu časové složitosti.
Algoritmy
Algoritmy jsou rozděleny do tří tříd: Mergesort, BinarySort, MatrixSort.
Součástí třídy Mergesort jsou dvě funkce algotimu mergesort: Sort a Merge.
Součástí třídy BinarySearch jsou čtyři algoritmy binárního třídění:
indexPrvku, indexPrvkuFloat, indexPrvkuIterativni a nejvetsiPrvekneVetsiNezK
Součástí třídy MatrixSearch jsou algoritmy:
saddleback, indexPrvku, indexyPrvku2D, binaryMatice, binaryMaticeVsechny
Poslední třída Utils obsahuje funkce potřebné k obsluze algoritmů.
Ukázka fungování algoritmů
Součástí projektu je také soubor Program.cs, který nabízí stručnou ukázku fungování algoritmů.
Ukázka testovacího kódu
Console.WriteLine("\nMATICOVÉ VYHLEDÁVÁNÍ\n");
int[][] matrix = Utils.GenerateRandomMatrix(5, 5, 10);
Utils.PrintMatrix(matrix);
int k = 7;
Tuple<int, int> result = MatrixSearch.Saddleback(matrix, k);
Console.WriteLine($"Saddleback: ({result.Item1}, {result.Item2})");
Instalace
Potřebné závislosti: Python 3, .NET
Klonování repozitáře:
git clone https://gitlab.vsb.cz/klara.nieslanikova.st/algorithmlibrary.git
cd algorithmlibrary
Autor
Klára Nieslaniková