DSV is a powerful, interactive web application that brings data structures and sorting algorithms to life! Perfect for students, educators, and developers who want to visualize and understand how fundamental computer science concepts work under the hood.
Visualize step-by-step sorting with beautiful animations:
- ๐ซง Bubble Sort - Watch elements bubble to their correct positions
- ๐ฏ Selection Sort - See the selection of minimum elements
- ๐ Insertion Sort - Observe elements being inserted in order
- ๐ Merge Sort - Experience the divide-and-conquer approach
Interactive manipulation of core data structures:
- ๐ Linked Lists - Insert/delete from beginning or end with visual connections
- ๐ Stacks - Push/pop operations with LIFO visualization
- ๐ถโโ๏ธ Queues - Enqueue/dequeue with FIFO demonstration
- ๐ฒ Custom Array Generation - Set size, min/max values
- โก Speed Control - Adjust animation speed to your preference
- ๐ Step-by-Step Mode - Manual control over each operation
- ๐ค Auto Mode - Sit back and watch the magic happen
Make sure you have Python 3.7+ installed on your system.
# ๐ฅ Clone the repository
git clone https://github.com/jishanahmed-shaikh/Algorithm-Visualizer.git
cd Algorithm-Visualizer
# ๐ฆ Install dependencies
pip install flask numpy
# ๐ Run the application
python app.py
# ๐ Open your browser and navigate to:
# http://127.0.0.1:5000
- ๐ฒ Generate Data: Create custom arrays or use random generation
- ๐ง Choose Algorithm: Select from bubble, selection, insertion, or merge sort
- โก Set Speed: Adjust animation speed using the slider
โถ๏ธ Visualize: Watch your data come to life with smooth animations- ๐๏ธ Explore Structures: Switch to stacks, queues, or linked lists for hands-on learning
POST /generateDS
๐ฒ - Generate random arrayPOST /sort
๐ - Execute sorting algorithm
POST /linkedlist/insert_beginning
โ - Insert at headPOST /linkedlist/insert_end
โ - Insert at tailPOST /linkedlist/delete_beginning
โ - Delete from headPOST /linkedlist/delete_end
โ - Delete from tail
POST /stack/push
โฌ๏ธ - Push elementPOST /stack/pop
โฌ๏ธ - Pop element
POST /queue/enqueue
โก๏ธ - Add to queuePOST /queue/dequeue
โฌ ๏ธ - Remove from queue
- ๐ Backend: Python + Flask
- ๐งฎ Data Processing: NumPy
- ๐จ Frontend: HTML5, CSS3, Vanilla JavaScript
- ๐ฑ Responsive Design: Mobile-friendly interface
- ๐ญ Animations: CSS transitions + JavaScript
- ๐๏ธ Visual Learning: See algorithms in action
- ๐ง Concept Reinforcement: Interactive manipulation builds understanding
- โฑ๏ธ Complexity Analysis: Observe time complexity differences
- ๐ Perfect for: Computer Science students, coding bootcamps, self-learners
- ๐ณ Tree Structures: Binary trees, AVL trees, heaps
- ๐ Graph Algorithms: BFS, DFS, shortest path
- ๐ Search Algorithms: Binary search, linear search
- ๐จ Enhanced UI: Dark mode, themes, better animations
- ๐ฑ Mobile App: Native iOS/Android versions
- ๐ Audio Feedback: Sound effects for operations
We love contributions! Here's how you can help:
- ๐ด Fork the repository
- ๐ฟ Create a feature branch (
git checkout -b feature/amazing-feature
) - ๐พ Commit your changes (
git commit -m 'Add amazing feature'
) - ๐ค Push to the branch (
git push origin feature/amazing-feature
) - ๐ Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Start your data structures journey today!
Made with โค๏ธ for the learning community
โญ Star this repo if it helped you learn! โญ