An algorithm visualization tool for jupyter notebook to show animation for vector, table, linked list, tree and graph data structures.
Project description
Algviz
What is algviz?
Algviz is an algorithm animation engine for your Python code in Jupyter, which supports multiple data structures such as vector
, table
, linked_list
, tree
and graph
.
Vector | Table | Tree | Graph |
---|---|---|---|
You can get live algorithm animation after bringing some algviz interfaces to your algorithm. For example, this code shows the bubble sort algorithm:
import algviz
def bubble_sort(data):
viz = algviz.Visualizer(0.5)
vector = viz.createVector(data, cell_size=(40, 160), histogram=True)
for i in range(len(vector)):
for j in range(len(vector)-i-1):
if vector[j] > vector[j+1]:
vector.mark(algviz.cRed, j)
vector.mark(algviz.cGreen, j+1)
viz.display()
vector.swap(j, j+1)
else:
vector.mark(algviz.cRed, j+1)
vector.mark(algviz.cGreen, j)
viz.display()
vector.mark(algviz.cGray, len(vector)-i-1, hold=True)
vector.removeMark(algviz.cGray)
viz.display()
bubble_sort([5, 4, -2, 1, -1, 3])
The rendered animation looks like this:
Examples
Ready to see the magic? Click this button to try more algorithms on Gitpod!
Need to login with your github account.
Installation
Please follow this installation guide to setup algviz.
Tutorial
This tutorial gives you a quick start on using algviz.
All the API references can be found at readthedocs.
License
Algviz uses GNU general public LICENSE. You can use it freely for learning and communication.
Contribution
Any form of contribution is welcomed! Please feel free to report a bug or create a pull request.
If you want to share your algorithm animation notebooks using algviz, you can create a PR from this repo: 👉 algviz-launch.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.