This repository contains my assignments for the course COMP 251 (Algorithms and Data Structures) at McGill University (W2021).
A1:
- Exercise 1: Building a hash table implemented using the following methods:
- multiplication:
$h(k) = ( (A \cdot k) \mod 2^w) >> (w-r)$ - linear probing:
$g(k,i) = *h(k) + i) \mod 2^r$
- multiplication:
- Exercise 2: Application of hashmaps to a "real-world problem" (a fictional problem in a real-world setting).
A2:
- Exercise 1: Using Complete Search methods to create an algorithm for a sudoku variant.
- Exercise 2: Application of dynamic programming to a "real-world problem" for a game where students collect points based off their position in a line.
- Exercise 3: Applying greedy algorithms to a "real-world problem" for homework scheduling.
A3:
- Exercise 1: Programmed a graph algorithm to compute the minumum number of moves to cross a grid.
- Exercise 2: Using graph algorithms to model vaccine distribution during the COVID-19 pandemic.
- Exercise 3: Implemented the Ford-Fulkerson graph algorithm to calculate the maximum flow of a directed weighted graph.
Assignment PDFs cannot be publicly posted online but details can be discussed privately.