A modern, interactive web application that brings data structures and algorithms to life through stunning visualizations.
Perfect for students, educators, and developers who want to understand how algorithms work under the hood.
🌐 Visit Live Site • 📖 Documentation • 🤝 Contribute • 🐛 Report Bug
- Bubble Sort - Watch bubbles rise to find their place
- Selection Sort - See the selection process in action
- Insertion Sort - Observe elements finding their sorted position
- Merge Sort - Visualize the divide and conquer approach
- Quick Sort - Experience the power of partitioning
- Heap Sort - Understand heap-based sorting
- Count Sort - See counting sort's linear time magic
- Bucket Sort - Watch elements distributed into buckets
- Radix Sort - Observe digit by digit sorting
- Binary Search - See the power of divide and conquer
- Linear Search - Watch sequential searching in action
- Binary Search Tree - Interactive BST operations
- Linked Lists - Single and double linked list operations
- Hash Tables - Understand hashing and collision resolution
- Heaps - Visualize heap structure and operations
- Real-time Animation - Smooth, customizable animation speeds
- Step-by-step Visualization - Control the pace of learning
- Custom Input - Test with your own data sets
- Random Data Generation - Quick testing with random arrays
- Responsive Design - Works on desktop and mobile devices
- Framework: Next.js 14 (React)
- Styling: Tailwind CSS
- Animations: Custom animation engine with p5.js
- UI Components: Shadcn/ui
- Deployment: Vercel
- Website: visuallearner.org
.
├── LICENSE
├── README.md
├── app
│ ├── algorithms
│ │ ├── bst
│ │ ├── hash-table
│ │ ├── heap
│ │ ├── linked-list
│ │ ├── search
│ │ └── sorting
│ ├── globals.css
│ ├── layout.js
│ └── page.js
├── components
│ ├── Animator.js
│ ├── Animator2.js
│ ├── CodeBlock.js
│ ├── Footer/
│ ├── Header/
│ ├── NumberInput.js
│ ├── Tideon.js
│ ├── phoneScreenBlocker.js
│ └── ui/
├── components.json
├── eslint.config.mjs
├── jsconfig.json
├── lib/
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.mjs
└── public/- Node.js 18+ installed
- npm, yarn, pnpm, or bun package manager
-
Clone the repository
git clone https://github.com/simonMat21/algorithm-visualizer.git cd algorithm-visualizer -
Install dependencies
npm install # or yarn install # or pnpm install
-
Run the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000 to see the application.
- Visit the Website - Go to visuallearner.org
- Select an Algorithm - Choose from sorting, searching, or data structure categories
- Input Your Data - Enter custom numbers or generate random data
- Customize Settings - Adjust animation speed and visualization preferences
- Watch & Learn - Observe the algorithm in action with real-time animations
- Experiment - Try different inputs to see how algorithms behave
We love contributions! Whether you're fixing bugs, adding new algorithms, improving documentation, or enhancing the UI, your help is greatly appreciated.
- 🐛 Bug Reports - Found a bug? Let us know!
- 💡 Feature Requests - Have an idea? We'd love to hear it!
- 🔧 Code Contributions - Submit pull requests for new features or fixes
- 📚 Documentation - Help improve our docs and examples
- 🎨 Design - Enhance the user interface and experience
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Add comments for complex algorithms
- Test your changes across different browsers
- Update documentation when needed
- Keep animations smooth and educational
This project is designed to help:
- Computer Science Students understand algorithm complexity and behavior
- Educators teach algorithms in an engaging, visual way
- Developers refresh their knowledge of fundamental algorithms
- Interview Candidates practice and visualize common algorithm questions
The visualization engine is highly customizable:
- Adjust colors and themes
- Modify animation speeds
- Add new visualization styles
- Extend with new algorithms
- Chrome (recommended)
- Firefox
- Safari
- Edge
- Built with ❤️ using Next.js and React
- Animations powered by p5.js
- UI components from Shadcn/ui
- Hosted at visuallearner.org
- Special thanks to all contributors who help make this project better
- Live Website: visuallearner.org
- GitHub Repository: github.com/yourusername/algorithm-visualizer
- Issues: Report bugs or request features
If you encounter any issues or have questions:
- Visit visuallearner.org to use the live version
- Open an issue on GitHub
- Check existing documentation
- Join our community discussions