Some data structure fun for algorithms!
The goal of the project was to implement a 2-dimensional tree data structure (k-d tree implementation) and evaluate its performance of datasets of increasing size N. The nearest neighbor query search was tested, and its evaluated performance outperformed the brute force approach on random data sets of size N. Additionally, an interactive GUI was implemented to visualize the k-d trees spatial structure in a 2-d space.
This is project uses no external libraries. It runs with all the included libraries in Java.
To validate the correctness of the KD-tree implementation run the unit test file:
kdtree -> tests -> KDTreeTests.java
The performance test results will print out the terminal window when run. To run the performance test on the KD-tree structure locally run the test file:
kdtree -> tests -> TimeEval.java
To run the KD-tree interactive GUI run the following file:
kdtreeGUI -> KDViewer -> KDViewer.java
In case this code does not compile or run. Pull the latest code from the following github repo:
https://github.com/JosuContrer/KD-Tree
The link to the video on the summary of our teams implementation and discoveries is provided in the link below:
https://youtu.be/DNuXnstsf1U
The report is included in this zip file as a pdf.
- Will Burke
- Josue Contreras
- Ian Coolidge
- Mayank Govilla