The purpose of this project is to familiarize myself with the most widely used path-finding algorithms; Dijkstra, A*, and IDA* as well as the data structures needed to implement them. This project will be implemented in Java using Gradle and JUnit.
A secondary purpose is to analyze and compare both time- and space-complexity for various inputs.
I chose this problem because path-finding is a very common problem, and I wanted to see how the more advanced algorithms work, what their features and drawbacks are, and how they compare to each other given various inputs. I hope to uncover important information regarding how much performance one is willing to give up to save on memory and vice versa.