| 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.