Skip to content

01mayankk/Intractive-Algorithm-Visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Interactive Algorithm Visualizer

A comprehensive web-based tool for visualizing various algorithms, data structures, and graph algorithms. Built with React, Redux Toolkit, and modern web technologies to provide an interactive and educational experience for understanding algorithmic concepts.

๐Ÿš€ Project Overview

This project serves as an educational platform for visualizing and understanding algorithms and data structures through interactive animations and real-time demonstrations.

โœจ Features Implemented

๐ŸŽฏ Core Features

  • Interactive Visualizations: Real-time algorithm animations with step-by-step execution
  • Speed Control: Adjustable animation speed for better understanding
  • Step-by-Step Execution: Pause, play, and step through algorithms
  • Responsive Design: Modern UI built with Tailwind CSS
  • State Management: Centralized state management with Redux Toolkit
  • Routing: Multi-page application with React Router

๐Ÿ“Š Algorithm Categories

๐Ÿ”ข Sorting Algorithms (8 Implemented)

  • Bubble Sort - Simple comparison-based sorting
  • Selection Sort - In-place comparison sorting
  • Insertion Sort - Simple adaptive sorting algorithm
  • Merge Sort - Divide-and-conquer sorting
  • Quick Sort - Efficient comparison-based sorting
  • Heap Sort - Comparison-based sorting using heap data structure
  • Counting Sort - Non-comparison integer sorting
  • Radix Sort - Non-comparison digit-based sorting

๐Ÿ” Searching Algorithms (2 Implemented)

  • Linear Search - Sequential search through elements
  • Binary Search - Efficient search in sorted arrays

๐Ÿ•ธ๏ธ Graph Algorithms (4 Implemented)

  • Breadth-First Search (BFS) - Level-by-level graph traversal
  • Depth-First Search (DFS) - Recursive graph exploration
  • Dijkstra's Algorithm - Shortest path finding
  • A Search* - Informed search algorithm with heuristics

๐Ÿ—๏ธ Data Structures (8 Implemented)

  • Binary Tree - Hierarchical data structure
  • Hash Table - Key-value storage with O(1) average access
  • Heap - Complete binary tree with heap property
  • Linked List - Linear data structure with nodes
  • Priority Queue - Queue with priority-based ordering
  • Queue - First-in-first-out (FIFO) data structure
  • Stack - Last-in-first-out (LIFO) data structure
  • Trie - Tree data structure for string operations

๐Ÿ› ๏ธ Technical Stack

Frontend Framework

  • React 18.2.0 - Modern UI library with hooks
  • React Router DOM 6.16.0 - Client-side routing
  • Redux Toolkit 1.9.7 - State management
  • React Redux 8.1.3 - React bindings for Redux

Styling & Build Tools

  • Tailwind CSS 3.3.5 - Utility-first CSS framework
  • Vite 4.4.5 - Fast build tool and dev server
  • PostCSS 8.4.31 - CSS processing
  • Autoprefixer 10.4.16 - CSS vendor prefixing

Development Tools

  • TypeScript Support - Type definitions for React
  • Hot Module Replacement - Fast development experience

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ algorithms/           # Algorithm implementations
โ”‚   โ”œโ”€โ”€ sorting/         # 8 sorting algorithms
โ”‚   โ”œโ”€โ”€ searching/       # 2 searching algorithms
โ”‚   โ””โ”€โ”€ graph/          # 4 graph algorithms
โ”œโ”€โ”€ dataStructures/      # 8 data structure implementations
โ”œโ”€โ”€ visualizers/         # React components for visualization
โ”œโ”€โ”€ components/          # Reusable UI components
โ”œโ”€โ”€ redux/              # State management
โ”œโ”€โ”€ utils/              # Utility functions
โ””โ”€โ”€ tests/              # Test files

๐ŸŽฎ Interactive Features

Sorting Visualizer

  • Array generation with customizable size
  • Real-time array visualization with color-coded states
  • Step-by-step execution controls
  • Performance metrics display

Searching Visualizer

  • Interactive array input
  • Visual search process with highlighting
  • Result display with search statistics

Graph Visualizer

  • Interactive node and edge creation
  • Start and goal node selection
  • Path visualization with different colors
  • Graph algorithm execution with step-by-step animation

Data Structures Visualizer

  • Interactive data structure creation
  • Visual representation of operations
  • Step-by-step operation demonstration

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn package manager

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/interactive-algorithm-visualizer.git
    cd interactive-algorithm-visualizer
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev
    # or
    npm start
  4. Open your browser: Navigate to http://localhost:5173 (Vite default port)

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build

๐Ÿ“ˆ Progress Summary

โœ… Completed Features

  • 22 Algorithm Implementations (8 sorting + 2 searching + 4 graph + 8 data structures)
  • Complete UI Framework with responsive design
  • State Management with Redux Toolkit
  • Routing System with React Router
  • Interactive Controls for all visualizers
  • Real-time Animations with speed control
  • Modern Build System with Vite
  • Styling System with Tailwind CSS

๐Ÿ”„ In Progress

  • Additional algorithm implementations
  • Enhanced visualizations
  • Performance optimizations
  • Mobile responsiveness improvements

๐Ÿ“‹ Planned Features

  • More graph algorithms (Bellman-Ford, Floyd-Warshall)
  • Advanced data structures (AVL Tree, Red-Black Tree)
  • Algorithm complexity analysis
  • Export/import functionality
  • User accounts and progress tracking
  • Algorithm comparison tools

๐Ÿค Contributing

This project is open for contributions! Areas where you can help:

  • Adding new algorithms
  • Improving visualizations
  • Enhancing UI/UX
  • Writing tests
  • Documentation improvements

๐Ÿ“ License

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

๐ŸŽฏ Future Roadmap

Phase 1 (Current)

  • โœ… Core algorithm implementations
  • โœ… Basic visualizations
  • โœ… UI framework

Phase 2 (Next)

  • Advanced graph algorithms
  • Algorithm complexity visualization
  • Performance benchmarking
  • Mobile app version

Phase 3 (Future)

  • Machine learning algorithm visualizations
  • Collaborative features
  • Educational content integration
  • API for external integrations

Last Updated: December 2024 Version: 1.0.0 Status: Active Development

About

This is the project I have made to help in visualization of core algorithms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors