How adidi12345/daa-assignment1 works
This Java assignment implements four divide-and-conquer algorithms and measures their practical behavior. The principal workflow starts in Main: it runs correctness checks, then launches experiments that generate input cases, invoke the algorithms, collect timing and operation metrics, and write results/results.csv. The plotting script reads that CSV to produce charts. Algorithm internals are represented as distinct runtime components; plotting is included because it is a documented analysis capability.
Main entry points: Experiment.java Experiment · Main.java Main · ClosestPairSolver.java Closest Pair · plot_results.py Plot generator
Components 11
Application workflow
- Main
src/Main.java - Experiment
src/Experiment.java
Algorithms
- MergeSort
src/MergeSorter.java - QuickSort
src/QuickSorter.java - Deterministic Select
src/DeterministicSelector.java - Closest Pair
src/ClosestPairSolver.java - Point
src/Point.java
Experimental analysis
- Experiment results
results/results.csv - Plot generator
scripts/plot_results.py - Generated plots
docs/plots
Other components
- User
Connections 15
- User → Main: starts
- Main → MergeSort: checks correctness
- Main → QuickSort: checks correctness
- Main → Deterministic Select: checks correctness
- Main → Closest Pair: checks correctness
- Main → Experiment: runs experiments
- Experiment → MergeSort: measures
- Experiment → QuickSort: measures
- Experiment → Deterministic Select: measures
- Experiment → Closest Pair: measures
- Experiment → Experiment results: writes records
- Plot generator → Experiment results: reads records
- Plot generator → Generated plots: writes charts
- Closest Pair → Point: uses coordinates
- Experiment → Point: creates point inputs