Visualize algorithms and data structures using animations
Java

README.md

AlgorithmVisualizer

Algorithm Visualizer for Android

Get it on Google Play

Screenshots

Visualizations

The following visualizations are available currently -

  • Binary search
  • Binary Search Tree (Search and insertion)
  • Linked List and Stack
  • Bubble sort and Insertion sort
  • BFS and DFS traversal
  • Dijkstara and Bellman Ford graph search

Contributing

Contributions are welcome to be able to provide visualizations for more algorithms. The existing API for visualizers are given below. These existing visualizers can be used directly for most algorithms.

Algorithm Implementation Visualizer
Binary Search BinarySearch BinarySearchVisualizer
Binary Search Tree BSTAlgorithm BSTVisualizer
Linked List LinkedList LinkedListVisualizer
Stack Stack StackVisualizer
Breadth first search GraphTraversal DirectedGraphVisualizer
Depth first search GraphTraversal DirectedGraphVisualizer
Dijkstara DijkstraAlgorithm WeightedGraphVisualizer
Bellman Ford BellmanFord WeightedGraphVisualizer
Bubble Sort BubbleSort SortingVisualizer
Insertion Sort InsertionSort SortingVisualizer
Selection Sort SelectionSort SortingVisualizer

All algorithm implementations must extend Algorithm and implement the DataHandler interface. The visualization happens on the main thread while the algorithms run in a seperate thread to be able to pause/resume execution. All data transfer must take place through the DataHandler interface.

License

(c) 2016 Naman Dwivedi

This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this app. If not, see https://www.gnu.org/licenses/.