Built to make algorithm state observable rather than abstract, the application combines reusable data structures, interactive graph editing, background algorithm threads, and synchronized JavaFX animation. Its Merge Sort view recursively clones and separates subarrays before animating values back through the merge tree.
View source on GitHubEngineering contributions
- Implement Bubble, Selection, Insertion, and Merge Sort plus BFS, DFS, and Dijkstra
- Build an interactive weighted-graph editor for creating, selecting, connecting, deleting, and clearing nodes
- Use adjacency lists, queues, visited sets, recursive backtracking, priority queues, and edge relaxation
- Animate discovery, traversal, backtracking, relaxation, and shortest-path construction with Timeline and KeyFrame sequences
- Design an abstract sorting framework with shared comparison, swap, completion, and speed-control behavior
- Synchronize background sorting threads with JavaFX using Platform.runLater, CountDownLatch, and parallel transitions
- Create a recursive Merge Sort split-and-merge visualization using cloned UI nodes and animated transitions
- Add randomized inputs, adjustable data size and speed, algorithm explanations, and complexity displays
- Contribute more than 40 commits across feature branches and merged pull requests
Inside the interface




System path
01User controls
02JavaFX controllers
03Algorithm threads
04Data structures
05Animated state