Lección 13: Heaps y top-K
Imagina la sala de urgencias de un hospital: no se atiende por orden de llegada, sino por urgencia. La estructura que hace exactamente esto se llama 'heap' (montículo): una cola de prioridad que siempre da acceso rápido al elemento extremo (el más pequeño o el más grande). En Python: heapq, con inse
Un heap es como una cola de hospital que siempre saca al siguiente paciente más urgente. En el heapq de Python, el 'más urgente' es simplemente el número más pequeño.
- heap (montículo)
- Una estructura de datos (cola de prioridad) que permite push y pop en O(log n), y un peek en O(1) del elemento extremo (mínimo/máximo).
- min-heap
- Un heap donde el elemento más pequeño siempre está en la raíz; el heapq de Python es un min-heap y heappop devuelve el mínimo.
- top-K
- Encontrar los K elementos más grandes (o más pequeños). Esto se puede hacer en O(n log K) con un heap de tamaño K, más rápido que un ordenamiento completo.