Skip to content
Deba-yanPublic

About

Launched to simplify the complex algorithums.

Topics

Resources

Stars

20 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ AlgoCraft - Interactive Algorithm Visualizer

An interactive platform to learn, visualize, and understand popular Data Structures & Algorithms through beautiful animations, real-time execution, and code templates.


🌐 Live Demo

πŸ‘‰ AlgoCraft


✨ Features

  • 🎨 Modern Dark UI
  • πŸ“± Fully Responsive Design
  • ⚑ Smooth Algorithm Animations
  • πŸ“Š Step-by-Step Visualization
  • πŸ’» Ready-to-use C, C++ and Python Code
  • πŸ“‹ One Click Copy Code
  • πŸ—ΊοΈ Interactive Pathfinding Map
  • β™ŸοΈ Backtracking Visualizations
  • ⌨️ Typewriter Animation
  • πŸš€ Fast and Lightweight

πŸ“š Algorithms Covered

πŸ”Ή(i) Sorting Algorithms

The sorting visualizer shows how elements move during sorting with animated bars.

1.Bubble Sort

Repeatedly compares adjacent elements and swaps them if they are in the wrong order.

Time Complexity

Best Average Worst
O(n) O(nΒ²) O(nΒ²)

2.Selection Sort

Finds the smallest element and places it at its correct position one by one.

Time Complexity

Best Average Worst
O(nΒ²) O(nΒ²) O(nΒ²)

3.Insertion Sort

Builds the sorted array one element at a time by inserting elements into their proper position.

Time Complexity

Best Average Worst
O(n) O(nΒ²) O(nΒ²)

4.Merge Sort

Uses Divide and Conquer by recursively splitting the array and merging sorted halves.

Time Complexity

Best Average Worst
O(n log n) O(n log n) O(n log n)

5.Quick Sort

Chooses a pivot element and partitions the array into smaller and larger values.

Time Complexity

Best Average Worst
O(n log n) O(n log n) O(nΒ²)

6.Heap Sort

Builds a Binary Heap from the input array and repeatedly extracts the maximum (or minimum) element to produce a sorted array.

How it Works

  1. Build a Max Heap from the array.
  2. Swap the root (largest element) with the last element.
  3. Reduce the heap size by one.
  4. Heapify the root to maintain the heap property.
  5. Repeat until the array is sorted.

Time Complexity

Best Average Worst
O(n log n) O(n log n) O(n log n)

πŸ”Ή(ii) Graph Algorithms

1.Dijkstra's Algorithm

Finds the shortest path from a source vertex to every other vertex in a weighted graph.

Applications

  • GPS Navigation
  • Network Routing
  • Delivery Optimization

Time Complexity

O((V + E) log V)

2.Breadth First Search (BFS)

Explores vertices level by level using a queue.

Applications

  • Shortest Path (Unweighted Graph)
  • Social Networks
  • Web Crawling

Time Complexity

O(V + E)

3.Depth First Search (DFS)

Traverses graph deeply before backtracking.

Applications

  • Cycle Detection
  • Topological Sorting
  • Connected Components

Time Complexity

O(V + E)

πŸ”Ή (iii) Backtracking Algorithms

1.N-Queens Problem

Places N queens on a chessboard so that no two queens attack each other.

Visualization includes

  • Safe Position Checking
  • Queen Placement
  • Backtracking
  • Final Solution

Time Complexity

O(N!)

2.Graph Coloring

Assigns colors to graph vertices so that no adjacent vertices have the same color.

Visualization includes

  • Color Assignment
  • Conflict Detection
  • Backtracking
  • Minimum Valid Coloring

Applications

  • Scheduling
  • Register Allocation
  • Map Coloring

πŸ’» Code Templates

Every algorithm provides implementation in

  • C
  • C++
  • Python

Features

  • Syntax Highlighting
  • Copy Button
  • Easy Learning
  • Beginner Friendly

πŸ—‚οΈ Project Structure

algo-visualizer/
β”‚
β”œβ”€β”€ index.html
β”‚   Main webpage layout and UI structure
β”‚
β”œβ”€β”€ style.css
β”‚   Dark theme styling, animations, responsive layout, and component design
β”‚
β”œβ”€β”€ server.py
β”‚   Lightweight Python HTTP server used for running the project locally
β”‚
β”œβ”€β”€ algorithms.cpp
β”‚   C++ implementations of the algorithms used as backend references
β”‚
└── js/
    β”‚
    β”œβ”€β”€ main.js
    β”‚   Controls navigation, tab switching, typewriter effect,
    β”‚   copy-to-clipboard functionality, and UI interactions
    β”‚
    β”œβ”€β”€ sorting.js
    β”‚   Handles sorting algorithm animations including Bubble,
    β”‚   Selection, Insertion, Merge, and Quick Sort
    β”‚
    β”œβ”€β”€ graphs.js
    β”‚   Implements graph visualizations, shortest path algorithms,
    β”‚   and interactive Indian city map pathfinding
    β”‚
    β”œβ”€β”€ backtracking.js
    β”‚   Contains visualizers for N-Queens and Graph Coloring
    β”‚   using recursive backtracking
    β”‚
    └── code_templates.js
        Stores C, C++, and Python implementations displayed
        inside the code viewer

πŸš€ Getting Started

Clone Repository

git clone https://github.com/your-username/algo-visualizer.git

Enter Folder

cd algo-visualizer

Run Python Server

python server.py

or

python3 server.py

Open your browser and visit

http://localhost:8000

🎯 Educational Objectives

This project helps students understand

  • Sorting Algorithms
  • Graph Algorithms
  • Backtracking Techniques
  • Time Complexity
  • Algorithm Visualization
  • Code Implementation
  • Data Structure Fundamentals

πŸ› οΈ Built With

  • HTML5
  • CSS
  • JavaScript
  • C++
  • Python

⭐ Support

If you found this project useful, consider giving it a ⭐ Star on GitHub to support future development.


πŸ‘¨β€πŸ’» Author

Debayan Kundu


Made with ❀️ to make Algorithms easier to understand through visualization.

About

Launched to simplify the complex algorithums.

Topics

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages