All work
05Algorithms / JavaFX / Concurrent UIAug 2025 - Dec 2025Completed

Algorithm Visualizer

A Java 21 desktop application that visualizes four sorting algorithms, three graph algorithms, and a custom recursive Merge Sort animation.

Context

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 GitHub

Engineering 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
Next system · 06CompanionAI