Acá cae el próximo elemento insertado {{ tree.hole }} {{ fmt(nd.v) }} {{ fmt(nd.v) }} {{ nd.i }}
i {{ i }} —
heap[i] {{ i === 0 ? 'NULO' : fmt(item.v) }} (vacío)
|heap| = {{ currentStep.arr.length }} · Tocá un i (en la tabla o en el árbol) para marcar su padre y sus hijos.
i = {{ kinship.i }} · {{ kinship.parent }} · {{ kinship.children }}
Extraídos, en el orden en que salieron: (ninguno todavía) {{ fmt(val) }}
{{ editorError }}
➕ Operación
{{ liveError }}
🔍 Explicación
{{ currentStep.badge.icon }} {{ currentStep.badge.text }}
{{ currentStep.swaps }} intercambio{{ currentStep.swaps === 1 ? '' : 's' }} · {{ currentStep.comparisons }} comparaci{{ currentStep.comparisons === 1 ? 'ón' : 'ones' }} en esta operación
Altura del heap: ⌊log₂ n⌋ = ⌊log₂ {{ currentStep.size }}⌋ = {{ Math.floor(Math.log2(currentStep.size)) }}
{{ currentStep.algo === 'insert' ? 'Flotar' : 'Hundir' }} hace como mucho un intercambio por nivel, así que nunca más que la altura: O(log n).

Paso {{ currentStepIndex + 1 }} de {{ steps.length }}

💻 Pseudocódigo

Hacé una operación para ver su pseudocódigo.

{{ line }}
📜 Historial
⏱️ Complejidad:
{{ h }}
{{ r[0] }}

Leyenda
  •    actual / pos: el elemento que flota o se hunde
  •    Con quién se compara (padre o hijos)
  •    menor: el hijo más chico encontrado
  •    Recién intercambiados
  •    Mínimo que se extrae o se consulta
  • Padre e hijos del i elegido en la tabla o el árbol
  • Con la posición 0 sin usar: padre(i) = ⌊i/2⌋, hijoIzquierdo(i) = 2i, hijoDerecho(i) = 2i + 1. El círculo punteado marca dónde cae el próximo elemento insertado.