AlgoVis is a passion project aimed at helping everybody understand algorithms a little better by using easy to understand visualizations, concise explanations and dynamic code highlighting showing exactly what's happening.
AlgoVis.io is an online algorithm visualization tool written using HTML, CSS, JS, jQuery and d3.js.
You do not need to download / clone / fork / whatever anything to test the website, as a live version can be found on my GithubPages portfolio!
If you wish to have a local copy for testing all you need to do is either fork and clone the repository if you want to contribute or download one of the releases found here if you just want to play around with it. There are no complicated setup steps to get it up and running. You won't need a webserver as I'm not using php or any other server-side languages in this project.
At the time of writing this readme, I've implemented visualizations for 24 algorithms in 3 categories and 4 data structures.
The 3 categories are:
- sorting
- graphs
- pathfinding and maze generation
A full list of all algorithms can be found under Full list of algorithms.
I've made the visualizations using d3.js. All visualizations are contained in an <svg> and are essentially just manipulations of svg elements. As this is the first time I've used d3.js, there's probably a lot of room for improvement in my code.
I've written jsDoc comments for every class and module to make it easier to understand what everything does. You can find all auto-generated html files in the documentation
folder.
- Bogosort
- Bubblesort
- Cocktail shaker sort
- Combsort
- Counting sort
- Gnomesort
- Insertion sort
- Quicksort
- Radix sort
- Selection sort
- Breadth-first search
- Depth-first search
- Kosaraju's algorithm
- Kruskal's algorithm
- Prim's algorithm
- Tarjan's algorithm
- A* algorithm
- Breadth-first search
- Depth-first search
- Dijkstra's algorithm
- Recursive DFS
- Growing tree algorithm
- Binary tree algorithm
- Sidewinder algorithm
- Doubly linked list
- Hash table
- Linked list
- Stack
If you've found a bug or want to add an algorithm feel free to fork this repository and open pull requests :).