algorithms

Algorithm implementations
git clone git://git.laack.co/algorithms.git
Log | Files | Refs | README

commit 964fa1713075bd11abf2a4a167ab0973d7163ff1
parent 9d7b353707cab9fc282fb2a70aa1e2f4969a8698
Author: Andrew Laack <andrew@laack.co>
Date:   Fri, 18 Sep 2026 00:50:40 -0500

Removed visualizations dir

Diffstat:
Dvisualizations/prim.py | 115-------------------------------------------------------------------------------
1 file changed, 0 insertions(+), 115 deletions(-)

diff --git a/visualizations/prim.py b/visualizations/prim.py @@ -1,115 +0,0 @@ -import pygame -import time -import heapq -import random -import math - -pygame.init() - -display = pygame.display.set_mode((5120,1440)) - -VERTICES = 100 -EDGES = 1000 - -white = (255, 255, 255) -red = (255, 0, 0) -black = (0, 0, 0) -grey = (100,100,100) -light_grey = (50,50,50) - - -class Vertex(): - def __init__(self, x, y): - self.x = x - self.y = y - self.visited = False - - def draw_vertex(self,display): - if self.visited: - pygame.draw.circle(display, white, (self.x,self.y), 5) - else: - pygame.draw.circle(display, grey, (self.x,self.y), 5) - -class Edge(): - def __init__(self, v1, v2): - self.v1 = v1 - self.v2 = v2 - self.dist = math.sqrt(((v1.x - v2.x) ** 2) + ((v1.y - v2.y) ** 2)) - - def draw_edge(self,display, c): - pygame.draw.line(display, c, (self.v1.x,self.v1.y), (self.v2.x,self.v2.y), 1) - - def __lt__(self,otr): - return self.dist < otr.dist - - -while True: - graph = {} - - for i in range(0,VERTICES): - x = random.random() * 5120 - y = random.random() * 1440 - graph[Vertex(x,y)] = [] - - - edge_list = [] - for i in range(0,EDGES): - k1 = None - k2 = None - while k1 == k2: - k1 = random.choice(list(graph.keys())) - k2 = random.choice(list(graph.keys())) - - edge = Edge(k1,k2) - graph[k1].append(edge) - graph[k2].append(edge) - edge_list.append(edge) - - - edge_heap = [] - visited_vertices = set() - - mst = [] - - start = random.choice(list(graph.keys())) - start.visited = True - visited_vertices.add(start) - for edge in graph[start]: - heapq.heappush(edge_heap, edge) - - while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit() - quit() - - display.fill(black) - for vertex in graph: - vertex.draw_vertex(display) - for edge in edge_list: - edge.draw_edge(display, light_grey) - for edge in mst: - edge.draw_edge(display, white) - - item = None - while edge_heap: - candidate = heapq.heappop(edge_heap) - if (candidate.v1 in visited_vertices) != (candidate.v2 in visited_vertices): - item = candidate - break - - if item is None: - pygame.display.update() - if len(visited_vertices) == VERTICES: - pygame.image.save(display, "out.jpg") - break - - new_vertex = item.v2 if item.v1 in visited_vertices else item.v1 - visited_vertices.add(new_vertex) - new_vertex.visited = True - mst.append(item) - for edge in graph[new_vertex]: - heapq.heappush(edge_heap, edge) - - time.sleep(.1) - pygame.display.update()