- Overview
- Project Insights
- Features
- Supported Algorithms
- Code Implementations
- Technologies Used
- Quick Start
- Usage Guide
- Project Structure
- Getting Started
- Analytics & Performance
- Educational Impact
- Contributors
- Documentation
- Project Stats
- Future Roadmap
- Acknowledgments
- Contact
- How to Contribute
- Contributing
- Code of Conduct
- Contribution Guidelines
- Suggestions & Feedback
- Show Your Support
- License
- Stargazers
- Forkers
- Project Admin
Welcome to AlgoVisualizer, a cutting-edge interactive web application designed to transform the way you learn and understand algorithms. Experience real-time visualizations of sorting, searching, and data structure algorithms with a beautiful, modern interface.
๐ Live Demo: https://algo-visualizer-amber.vercel.app
๐ Stars | ๐ด Forks | ๐ Issues | ๐ Open PRs | ๐ Closed PRs | ๐ ๏ธ Languages | ๐ฅ Contributors |
- Dark Theme: Sleek GitHub-inspired dark theme for comfortable learning
- Interactive Learning Platform: Intuitive badge-based navigation system
- Responsive Design: Seamless experience across desktop, tablet, and mobile devices
- Smooth Animations: Powered by Framer Motion for engaging user experience
- ๐ Custom Data Visualization: Upload your own arrays, graphs, and data structures
- ๐ฏ Multiple Input Methods: Text input, file upload (JSON/CSV/TXT), and sample data
- โ Smart Validation: Real-time data validation with helpful error messages
- ๐ Format Support: JSON, CSV, comma-separated values, and structured data
- ๐ง Auto-Processing: Automatic sorting for search algorithms, ID generation for graphs
- ๐ Sample Library: Built-in examples for all algorithm types (arrays, graphs, trees)
- ๐ File Export: Download sample data or save your custom datasets
- Step-by-Step Visualization: Watch algorithms execute in real-time with clear visual feedback
- Interactive Controls: Play, pause, reset, and adjust speed of algorithm execution
- Performance Metrics: Track comparisons, swaps, iterations, and execution time
- Code Explanation: Detailed code walkthrough with syntax highlighting
- ๐ธ High-Quality Snapshots: Capture visualization states as PNG/JPEG images
- ๐ฌ Video Recording: Export complete algorithm runs as GIFs or MP4 videos
- โ๏ธ Customizable Settings: Adjust frame rates, quality, and export formats
- ๐ Educational Ready: Perfect for presentations, tutorials, and documentation
- Interactive Quiz System: Test your algorithm knowledge with built-in quizzes
- Algorithm Documentation: Comprehensive guides and explanations
- Contributors Section: Meet the amazing people behind the project
- About & Contact Pages: Learn more about the project and get in touch
๐ Exciting News...
๐ This project is now an official part of GirlScript Summer of Code โ GSSoC'25! ๐๐๐ป We're thrilled to welcome contributors from all over India and beyond to collaborate, build, and grow AlgoVisualizer! Letโs make learning and career development smarter โ together! ๐๐จโ๐ป๐ฉโ๐ป
๐ฉโ๐ป GSSoC is one of Indiaโs largest 3-month-long open-source programs that encourages developers of all levels to contribute to real-world projects ๐ while learning, collaborating, and growing together. ๐ฑ
๐ With mentorship, community support, and collaborative coding, it's the perfect platform for developers to:
- โจ Improve their skills
- ๐ค Contribute to impactful projects
- ๐ Get recognized for their work
- ๐ Receive certificates and swag!
๐ I canโt wait to welcome new contributors from GSSoC 2025 to this AlgoVisualizer project family! Let's build, learn, and grow together โ one commit at a time. ๐ฅ๐จโ๐ป๐ฉโ๐ป
- Bubble Sort - Simple comparison-based sorting
- Insertion Sort - Efficient for small datasets
- Selection Sort - In-place comparison sorting
- Merge Sort - Divide and conquer approach
- Quick Sort - Efficient average-case performance
- Bucket Sort - Distribution-based sorting
- Radix Sort - Non-comparison integer sorting
- Linear Search - Sequential search through elements
- Binary Search - Efficient search on sorted arrays
- Jump Search - Block-based search optimization
- Exponential Search - Combination of binary and unbounded search
- Stack - LIFO (Last In, First Out) operations
- Queue - FIFO (First In, First Out) operations
- Linked List - Dynamic linear data structure
- Binary Tree - Hierarchical tree structure
- Binary Search Tree - Ordered binary tree with search properties
- Graph Algorithms - Network and connectivity visualizations
AlgoVisualizer provides ready-to-use code implementations for all visualized algorithms in multiple programming languages. This feature makes it perfect for learning, reference, and direct use in your projects.
- ๐ Multiple Languages: View implementations in Java, Python, and C++
- ๐ Language Switching: Easy toggle between programming languages with a single click
- ๐ Copy-Ready Code: All code is production-ready and can be directly copied
- ๐ Educational Focus: Clean, well-commented code perfect for learning
- ๐ฏ Algorithm Coverage: Comprehensive coverage of all visualized algorithms
Complete implementations for all sorting algorithms including:
- Bubble Sort, Selection Sort, Insertion Sort
- Merge Sort, Quick Sort, Shell Sort
- Radix Sort, Bucket Sort, Heap Sort
- Tim Sort, Intro Sort, Counting Sort
Efficient search implementations:
- Linear Search - Sequential element scanning
- Binary Search - Logarithmic search on sorted arrays
- Ternary Search - Three-way division search
- Jump Search - Block-based optimization
- Exponential Search - Range finding + binary search
Network and connectivity algorithms:
- BFS (Breadth-First Search) - Level-order traversal
- DFS (Depth-First Search) - Deep exploration traversal
- Dijkstra's Algorithm - Shortest path finding
- Bellman-Ford Algorithm - Negative edge handling
- Floyd-Warshall Algorithm - All-pairs shortest paths
Complete linked list functionality:
- Insert Operations: Beginning, End, At Position
- Delete Operations: By Value, By Position
- Utility Operations: Search, Traverse, Reverse
- List Management: Size calculation, Clear operations
Additional algorithmic implementations:
- Morris Traversal, Dutch National Flag
- Kahn's Algorithm, Tarjan's Algorithm
- Tower of Hanoi, Kadane's Algorithm
- Navigate to any algorithm page (Sorting, Searching, Graph, etc.)
- Scroll to the "Code Implementation" section at the bottom
- Select your preferred language using the language tabs (Java/Python/C++)
- Copy the code directly from the syntax-highlighted code block
- Use in your projects - all code is production-ready!
- โ Production Ready: All implementations are tested and optimized
- ๐ Educational: Clear variable names and logical structure
- ๐ง Modular: Easy to integrate into existing projects
- ๐ Well Documented: Inline comments explain key concepts
- ๐ฏ Efficient: Implementations follow best practices for each language
- Object-oriented design patterns
- Generic programming with Collections
- Exception handling where appropriate
- Standard Java conventions and style
- Pythonic code style and idioms
- List comprehensions and built-in functions
- Type hints for better code clarity
- PEP 8 compliant formatting
- Modern C++ features (C++11 and later)
- STL containers and algorithms
- Memory management best practices
- Template programming where beneficial
Each code section includes detailed complexity analysis:
- โฑ๏ธ Time Complexity: Best, average, and worst-case scenarios
- ๐พ Space Complexity: Memory usage analysis
- ๐ Algorithm Description: Clear explanation of how it works
- ๐ฏ Use Cases: Real-world applications and when to use each algorithm
The code implementations are ideal for:
- ๐จโ๐ Students learning data structures and algorithms
- ๐ฉโ๐ป Developers preparing for coding interviews
- ๐ซ Educators creating teaching materials
- ๐ Self-learners exploring algorithmic concepts
- ๐ Project Developers needing quick algorithm implementations
- Compare Languages: Switch between languages to see different implementation approaches
- Study Patterns: Notice how similar algorithms are structured across languages
- Experiment: Modify the code to understand how changes affect performance
- Practice: Use the visualizations alongside code to understand execution flow
- React 18.3.1 - Modern component-based UI framework
- Framer Motion 12.23 - Smooth animations and transitions
- React Router Dom 6.30 - Client-side routing
- Lucide React - Beautiful icon library
- CSS3 - Modern styling with custom properties and grid layouts
- Vite 5.0 - Fast build tool and development server
- ESLint - Code quality and consistency
- HTML2Canvas - Screenshot and image capture
- GIF.js - GIF creation and export
- RecordRTC - Video recording capabilities
- Vercel - Serverless deployment platform
- Vercel Analytics - User behavior and performance tracking
-
State Management: Handles the array of numbers to be sorted and updates the UI as the algorithm progresses.
-
Dynamic Bar Width: Bar size is now calculated dynamically based on screen size and the number of elements โ so the visualizer is fully responsive.
-
Sorting Algorithms: The algorithms (Bubble Sort, Merge Sort, Quick Sort, etc.) are imported from the src/algorithms/ folder. Each runs step-by-step with animated transitions.
-
Styling: The visualization container and bars are styled in UnifiedVisualizer.css for a clean, responsive layout.
- Node.js 20.11.1 or higher
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/<your-username>/AlgoVisualizer.git Example: git clone https://github.com/RhythmPahwa14/AlgoVisualizer.git cd AlgoVisualizer
-
Install dependencies:
npm install --legacy-peer-deps
-
Start the development server:
npm run dev
-
Open your browser:
Navigate to
http://localhost:5173/
to view the application.
npm run build
npm run preview
- Interactive learning platform badge at the top
- Algorithm showcase with rotating examples
- Direct navigation to different algorithm categories
- Load Your Data: Use the enhanced input panel to:
- Enter numbers directly:
64, 34, 25, 12, 22, 11, 90
- Upload a JSON file:
[64, 34, 25, 12, 22, 11, 90]
- Try sample data with different characteristics
- Enter numbers directly:
- Select your preferred sorting algorithm
- Adjust visualization speed
- Click "Start Sorting" to begin
- Use export controls to capture or record the process
- Input Your Array: Load custom data (auto-sorted for searching):
- Direct input:
5, 12, 19, 23, 45, 67, 89
- File upload: CSV or JSON format
- Sample sorted arrays available
- Direct input:
- Choose a searching algorithm
- Specify the target value to search
- Watch the step-by-step search process
- Export visualizations for educational use
- Create Your Graph: Use the input panel to define:
{ "nodes": [{"id": 0, "label": "A"}, {"id": 1, "label": "B"}], "edges": [{"id": "0-1", "from": 0, "to": 1, "weight": 5}] }
- Load sample graphs (simple, complex, weighted, cycle detection)
- Select algorithm (BFS, DFS, Dijkstra)
- Watch the traversal or pathfinding in action
- Explore interactive data structure operations
- Load custom tree/linked list data
- Visualize insertions, deletions, and traversals
- Understand structural relationships and properties
- Multiple Formats: JSON, CSV, TXT file support
- Real-time Validation: Instant feedback on data format
- Sample Data Library: Examples for every algorithm type
- Auto-correction: Missing IDs and labels auto-generated
- Error Guidance: Clear instructions for fixing data issues
- Test your algorithm knowledge
- Multiple choice questions with immediate feedback
- Track your learning progress
AlgoVisualizer/
โโโ public/ # Static assets
โโโ src/
โ โโโ algorithms/ # Algorithm implementations
โ โโโ components/ # Reusable React components
โ โโโ data/ # Static data and configurations
โ โโโ hooks/ # Custom React hooks
โ โโโ pages/ # Main application pages
โ โโโ styles/ # CSS styling files
โ โโโ utils/ # Utility functions and helpers
โโโ package.json # Project dependencies and scripts
โโโ README.md # Project documentation
- Fork the repository
# Fork the repository on GitHub, then clone your fork:
git clone https://github.com/your-username/AlgoVisualizer.git
cd AlgoVisualizer
- Set Up Upstream
# Add the original repository as upstream:
git remote add upstream https://github.com/RhythmPahwa14/AlgoVisualizer.git
git fetch upstream
- Create your feature branch
# Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
- Commit your changes
# Stage and commit your changes:
git add .
git commit -m "feature: add awesome feature"
- Push to the branch & Create PR
# Push your branch to your fork and open a Pull Request:
git push origin feature/your-feature-name
Then go to AlgoVisualizer Pull Requests and create a PR with a clear description of your changes.
- Follow existing code conventions
- Add comments for complex algorithms
- Ensure responsive design for all new features
- Test your changes across different devices
This application uses Vercel Analytics to track:
- Page views and user engagement
- Performance metrics and load times
- Feature usage patterns
- Geographic user distribution
All data is collected anonymously and helps us improve the user experience.
Perfect for:
- Students learning data structures and algorithms
- Teachers creating interactive classroom materials
- Developers preparing for technical interviews
- Content Creators making educational videos and tutorials
- Bootcamps and coding schools
Meet our amazing project admins:
Rhythm |
Sandeep Vashishtha |
Meet our amazing contributors:
Want to see your name here? Contribute to the project!
- Export Features Guide - Detailed guide on recording and exporting visualizations
- Contributing Guidelines - How to contribute to the project
- Algorithm Documentation - In-app algorithm explanations
- 15+ Algorithms implemented with visualizations
- 6 Data Structures with interactive operations
- Mobile Responsive design for all devices
- Modern Tech Stack with React 18 and Vite
- Export Capabilities for educational content creation
- ๐ Graph Algorithms: Advanced graph traversal and pathfinding
- ๐ข Mathematical Algorithms: Number theory and computational mathematics
- ๐ฎ Gamification: Achievement system and learning badges
- ๐ Internationalization: Multi-language support
- ๐ค AI Integration: Algorithm recommendation system
- Thanks to all contributors of this project
- Special shoutout to GirlScript Summer of Code (GSSoCโ25) for the amazing community and support!
- Built with dedication, collaboration, and lots of chai
- GitHub Issues: Report bugs or request features
- Email: Contact the maintainers for collaboration opportunities
We love contributions from the community! Whether it's a bug report, a new feature, or a documentation improvement, we appreciate your help.
How to Contribute
- Fork and clone the repository and create a new branch for your changes.
- Make your changes and ensure everything is working as expected.
- Submit a pull request with a clear description of your changes.
or check out Getting Started With Contributions
Found a Bug?
- Check the issue tracker to see if the bug has already been reported.
- If not, open a new issue and provide as much detail as possible.
Have a Feature Idea?
- We'd love to hear it! Open an issue to discuss your idea.
We welcome contributions from the community! Here's how you can help:
- ๐ Report Bugs: Found an issue? Let us know!
- ๐ก Suggest Features: Have ideas for improvements?
- ๐ Improve Documentation: Help make our docs better
- ๐จ Design Improvements: Enhance the user interface
- โก Performance Optimizations: Make the app faster
- ๐งช Add Algorithms: Implement new visualization algorithms
Please refer to the Code of Conduct
for details on contributing guidelines and community standards.
We love our contributors! If you'd like to help, please check out our CONTRIBUTE.md
file for guidelines.
Thank you once again to all our contributors who has contributed to AlgoVisualizer! Your efforts are truly appreciated. ๐๐
See the full list of contributors and their contributions on the GitHub Contributors Graph
.

Feel free to open issues or discussions if you have any feedback, feature suggestions, or want to collaborate!

If you find AlgoVisualizer project helpful, give it a star! โญ to support more such educational initiatives:
- โญ Starring the repository
- ๐ฆ Sharing on social media
- ๐ฌ Telling your friends and colleagues
- ๐ค Contributing to the project

This project is licensed under the MIT License - see the License
file for details.




Open an Issue | ๐ Star on GitHub | ๐ Live Demo

Ready to show off your coding achievements? Get started with AlgoVisualizer today! ๐