About

Articles

Projects

CV

AlgoVisualizer

Visualizing Algorithms

CONTRIBUTORS

SKILLS

Python, Data Structures and Algorithm, Object Oriented Programming

PUBLISHED

16, October 2023

IMPORTANT LINKS

Github

Contents

  • Tools Used:
  • System Diagram:
  • Preview
  • Recommendations

After graduating from Electrical and Electronics Engineering with very little software background, I decided to enhance my knowledge of Data Structures and Algorithms. Fortunately, I came across "Grokking Algorithms."

To practice and solidify my understanding of algorithms and Big O notation, I embarked on building an algorithm visualizer.

Tools Used:

  • Python
  • Object-Oriented Programming (OOP)
  • Tkinter

System Diagram:

The system comprises two files: views.py and sorts.py.

sorts.py:

This file manages the implemented algorithms. Each algorithm is encapsulated as a method within a class. When instantiating the class, the input is the list to be sorted.

views.py:

This serves as the interactive interface, allowing users to input their unsorted list, select an algorithm, and observe the sorting process. It is constructed using Tkinter and the matplotlib library.

Preview

Algorithm Visualiser

Algorithm Visualiser

Recommendations

Grokking Algorithms is one of the best and most intuitive books for beginners to quickly get their hands dirty on algorithms.

However, the algorithms I could easily implement are sorting algorithms because of the static nature of the problem, and because of that, here are a few recommendations to consider:

  • Use interactive plots like Plotly to improve the aesthetics of basic 2D algorithms like sorting.
  • Use interactive and dynamic plots. See NetworkX, PyGraph, igraph to implement Graph-based algorithms like Dijkstra and BellMan Ford algorithm while plotting their output on a dynamic plot.

Acknowledgements

Nil

References

  1. Nil

© 2023 Nelson Elijah. All rights reserved