🎯 CSI 3610 Algorithm Visualizations

Interactive tools to master algorithms. Click any card to start!

πŸš€ Quick Start - Where Should I Begin?

Choose a learning path based on what you want to study:

πŸ“š Fundamentals Start here if new to algorithms πŸ“Š Sorting Insertion, Merge, Quick, Heap πŸ•ΈοΈ Graphs BFS, DFS, MST, Shortest Paths 🧩 Dynamic Programming Fibonacci, Knapsack, LCS 🧠 Complexity Theory Big-O, P vs NP

πŸ“‘ Jump to Section

Fundamentals Sorting Data Structures Greedy Graph Traversal MST Shortest Paths Dynamic Programming Complexity Theory Randomized Approximation

🌟 Fundamentals (Start Here!)

Linear Search

Search by checking each element one by one. The simplest search algorithm.

Time: O(n) | Space: O(1)
πŸ“š Lecture 01

Why Efficiency Matters

Compare O(n) vs O(log n) β€” see why algorithm choice matters as n grows!

Interactive comparison tool
πŸ“š Lecture 01

Growth Rates & Big-O

Visualize how O(1), O(log n), O(n), O(n²), O(2ⁿ) grow with input size.

Interactive chart
πŸ“š Lecture 02

Master Theorem Calculator

Solve recurrences T(n) = aT(n/b) + f(n) automatically.

Cases 1, 2, 3
πŸ“š Lecture 04

πŸ“Š Sorting Algorithms

Insertion Sort

Build sorted array one element at a time by inserting into correct position.

Time: O(nΒ²) avg | Space: O(1)
πŸ“š Lecture 01

Merge Sort

Divide array in half, sort recursively, merge sorted halves.

Time: O(n log n) | Space: O(n)
πŸ“š Lecture 04

Quicksort

Select pivot, partition around it, recursively sort partitions.

Time: O(n log n) avg | Space: O(log n)
πŸ“š Lecture 05

Quicksort Partition (Lomuto)

Step-by-step visualization of the Lomuto partition scheme.

Time: O(n)
πŸ“š Lecture 05

Heapsort

Build max-heap, repeatedly extract maximum to build sorted array.

Time: O(n log n) | Space: O(1)
πŸ“š Lecture 06

πŸ—οΈ Data Structures

Binary Heap

Complete binary tree with heap property. Foundation for priority queues.

Insert/Extract: O(log n) | Build: O(n)
πŸ“š Lecture 06

🎯 Greedy Algorithms

Activity Selection

Select maximum number of non-overlapping activities by earliest finish time.

Time: O(n log n) | Space: O(1)
πŸ“š Lecture 07

Huffman Coding

Build optimal prefix-free binary codes for data compression.

Time: O(n log n) | Space: O(n)
πŸ“š Lecture 08

Fractional Knapsack

Maximize value by taking fractions of items (greedy by value/weight).

Time: O(n log n) | Space: O(1)
πŸ“š Lecture 07

πŸ•ΈοΈ Graph Traversal

Breadth-First Search (BFS)

Explore neighbors level by level. Finds shortest path in unweighted graphs.

Time: O(V + E) | Space: O(V)
πŸ“š Lecture 09

Depth-First Search (DFS)

Explore as deep as possible before backtracking. Used for connectivity, cycles.

Time: O(V + E) | Space: O(V)
πŸ“š Lecture 09

BFS vs DFS Comparison

Side-by-side comparison showing queue (BFS) vs stack (DFS) behavior.

Time: O(V + E)
πŸ“š Lecture 09

Topological Sort

Linear ordering of vertices in DAG where u comes before v for edge (u,v).

Time: O(V + E) | Space: O(V)
πŸ“š Lecture 10

🌲 Minimum Spanning Trees

Kruskal's Algorithm

Build MST by adding edges in order of weight, avoiding cycles (Union-Find).

Time: O(E log E) | Space: O(V)
πŸ“š Lecture 11

Prim's Algorithm

Build MST by growing tree from a start vertex, always adding minimum edge.

Time: O(E log V) | Space: O(V)
πŸ“š Lecture 11

πŸ›€οΈ Shortest Path Algorithms

Dijkstra's Algorithm

Find shortest paths from source to all vertices (non-negative weights).

Time: O(E log V) | Space: O(V)
πŸ“š Lecture 12

Bellman-Ford Algorithm

Find shortest paths even with negative edges. Detects negative cycles.

Time: O(VE) | Space: O(V)
πŸ“š Lecture 12

Floyd-Warshall Algorithm

Find all-pairs shortest paths using dynamic programming.

Time: O(VΒ³) | Space: O(VΒ²)
πŸ“š Lecture 16

🧩 Dynamic Programming

Fibonacci (DP Intro)

Classic example showing memoization vs tabulation approach.

Time: O(n) | Space: O(1)
πŸ“š Lecture 13

DP Fibonacci (Memoization Viz)

See how memoization avoids redundant calls compared to naive recursion.

Naive O(2ⁿ) vs DP O(n)
πŸ“š Lecture 13

Coin Change

Find minimum coins to make a target amount.

Time: O(n Γ— amount) | Space: O(amount)
πŸ“š Lecture 13

0/1 Knapsack

Maximize value with weight constraint. Each item taken or left entirely.

Time: O(nW) | Space: O(nW)
πŸ“š Lecture 14

Longest Common Subsequence

Find longest sequence appearing in both strings in same order.

Time: O(mn) | Space: O(mn)
πŸ“š Lecture 15

Edit Distance

Minimum insertions, deletions, substitutions to transform one string to another.

Time: O(mn) | Space: O(mn)
πŸ“š Lecture 15

🧠 Complexity Theory

P vs NP Visualization

Understand complexity classes P, NP, and NP-Complete with visual diagrams.

The $1M Question
πŸ“š Lecture 17

🎲 Randomized Algorithms

Randomized Quicksort

Random pivot selection avoids worst-case on sorted input.

Expected: O(n log n) | Space: O(log n)
πŸ“š Lecture 23

Quickselect

Find k-th smallest element in expected linear time.

Expected: O(n) | Worst: O(nΒ²)
πŸ“š Lecture 23

πŸ“ Approximation Algorithms

Vertex Cover (2-Approx)

Find approximate minimum vertex cover using edge matching.

Ratio: 2 | Time: O(V + E)
πŸ“š Lecture 20