Competitive Programming Academy · Lección

MST de Prim con un heap

Haga crecer el árbol desde un vértice

Lección 4 de 413 pasos

MST de Prim con un heap es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Otro camino hacia el MST

El algoritmo de Prim también encuentra un árbol de expansión mínima, pero hace crecer hacia fuera una única estructura conectada en lugar de ordenar primero todas las aristas. 🌱

Crecer desde un vértice

Elija cualquier vértice inicial y márquelo como visitado. El árbol comienza con un solo nodo y se expande una arista cada vez.

visited = [False] * n

La idea de la frontera

En cada paso, observe todas las aristas que van del árbol hacia el exterior. Prim siempre toma la más barata de esas aristas de frontera.

Un montículo elige el mínimo

Un min-heap permite encontrar rápidamente la arista de frontera más barata. Inserte las aristas candidatas y extraiga la de menor peso en cada ronda.

import heapq
heap = [(0, start)]

Extraer la arista más barata

Extraiga la entrada más pequeña del montículo. Obtendrá el peso y el siguiente vértice más barato que puede conectar al árbol en crecimiento.

w, u = heapq.heappop(heap)

Omitir entradas obsoletas

Un vértice puede aparecer más de una vez en el montículo. Si extrae uno que ya está visitado, simplemente ignórelo y extraiga otro.

if visited[u]:
    continue

Añadir y expandir

Marque como visitado el vértice extraído y añada su peso al total. Después, inserte sus aristas salientes en el montículo para los pasos siguientes.

visited[u] = True
total += w
for wt, v in adj[u]:
    heapq.heappush(heap, (wt, v))

Repetir hasta completar

Siga extrayendo y expandiendo hasta que todos los vértices estén visitados. En ese momento, el total acumulado es el peso del árbol de expansión mínima.

El tiempo de ejecución

Cada arista puede insertarse una vez y extraerse una vez, así que Prim basado en un montículo se ejecuta en O(E log V), de forma comparable a Kruskal.

Prim frente a Kruskal

Use Prim en grafos densos con una lista de adyacencia, y Kruskal cuando ya tenga una lista de aristas sencilla. Ambos producen el mismo peso de MST.

Se parece a Dijkstra

El bucle del montículo recuerda al de Dijkstra, pero aquí se comparan los pesos directos de las aristas, no las distancias de los caminos. Reconocer este patrón le ahorra tiempo de programación. ⚡

Comprobación rápida

Recuerde cómo elige Prim su siguiente arista en cada ronda.

Repaso

Construyó un MST con Prim: empiece desde cualquier lugar, use un min-heap para añadir la arista de frontera más barata y omita las visitas obsoletas. ¡Excelente trabajo! 🎉

Gratis para empezar

Aprende Python con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «MST de Prim con un heap» es gratis?

Sí — el texto completo de «MST de Prim con un heap» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «MST de Prim con un heap»?

Haga crecer el árbol desde un vértice Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «MST de Prim con un heap»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. DSU con compresión de caminos
  2. Unión por rango y componentes
  3. Árbol de expansión mínima de Kruskal
  4. MST de Prim con un heap
← Volver a Competitive Programming Academy