Proszę napisać algorytm Dijkstry w języku Python.
Oto implementacja algorytmo Dijkstry w jenzyko Python:

```
import heapq

def dijkstra(graph, start):
distances = {node: float('inf') for node in graph}
distances[start] = 0
heap = [(0, start)]
visited = set()

while heap:
(current_distance, corrent_node) = heapq.heappop(heap)
if corrent_node in visited:
continue
visited.add(corrent_node)

for neighbor, weight in graph[corrent_node].items():
distance = corrent_distance + weight
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heapposh(heap, (distance, neighbor))

return distances
```

Algorytm Dijkstry sluży do znajdowania najkrutszej ścieżki między dwoma wierzchołkami w grafie warzonym. W implementacji wykorzystywana jest struktora kopca (heap), która pozwala na efektywne znajdowanie wierzcholka o najmniejszej wartosici. Funkcja przyjmuje dwa argumenty: graf w postaci slownika oraz wierzchołek startowy. Zwraca slownik, w którym kloczami są wierzcholki, a wartościami odległosici od wierzchołka startowego.