Saltar al contenido principal
Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

Core Computer Science

Data structures, algorithms, and the core CS foundations — plus an optional advanced track for expert topics.

Sparse Table Visualizer

Build

Paso 0 / 0
Speed 100ms
Step Progress 0 / 0
Rows 0
Query Result —
Status Ready
Active row
Covers query
Interval min
Step Explanation

Precompute every interval min for lengths 1, 2, 4, 8… so any range min is two O(1) lookups.

Pseudocode
 

Sparse Table

Advanced (4/5) ~45 minutos Range queries idempotentes Preprocesamiento O(n log n) Query O(1) para min/max/gcd No soporta updates Prereqs: Arrays, Logaritmos

Sparse Table es una estructura para range queries idempotentes (min, max, gcd) en O(1) tras preprocesamiento O(n log n). Es más simple que segment tree y más rápida en query, pero no soporta updates.

La idea: precomputa respuestas para intervalos de longitud potencia de 2, y combina dos intervalos para cubrir cualquier rango.

Build

st[i][k] = resultado sobre arr[i..i+2^k-1].

st[i][0] = arr[i]
st[i][k] = combine(st[i][k-1], st[i + 2^{k-1}][k-1])

Complejidad: O(n log n) porque hay n log n entradas.

Query

Para rango [L, R] (longitud len = R-L+1):

k = floor(log2(len))
result = combine(st[L][k], st[R - 2^k + 1][k])

Los dos intervalos de longitud 2^k se superponen pero para operaciones idempotentes (min, max, gcd) eso no importa.

Ejemplo

Array: [3, 1, 4, 1, 5, 9], query min en [2, 5] (0-based: 4, 1, 5, 9).

len = 4, k = log2(4) = 2. st[2][2] = min en [2, 5] = 1.

Limitaciones

  • Sin updates — si el array cambia, debes rebuild.
  • Solo idempotentes — no funciona para suma (necesitas ranges sin superposición).
  • Espacio — O(n log n) vs O(n) de Fenwick.

Comparación

EstructuraQueryUpdateBuildUso
Sparse TableO(1)NoO(n log n)Min/Max estático
Segment TreeO(log n)SíO(n)General
FenwickO(log n)SíO(n)Suma

Aplicaciones

  • Range min/max — RMQ en arrays estáticos
  • LCA — Lowest Common Ancestor en árboles
  • GCD queries — matemáticas, criptografía
  • Enseñanza — introduce sparse representation y queries O(1)

Trayectoria de Práctica

  1. Implementa sparse table para RMQ; traza query.
  2. Verifica que O(1) query es correcta.
  3. Extiende a GCD.
  4. Investiga por qué suma no es idempotente.
  5. Investiga LCA con sparse table: ¿cómo usa binary lifting?