Dijkstra’s algorithm computes the shortest distance between two vertices in a graph. Vertices in a graph are connected by an edge with a positive length.

static int SingleSourceShortestPathForNonNegativeEdgeLength(Vertex v)
{
    int min = short.MaxValue;
    var crossingEdges = new MinHeap<short, short>(N);
    var minVertices = new bool[N]; 
    minVertices[v.Id - 1] = true;
    
    foreach (var outgoingEdge in v.OutgoingEdges)
    {
        // Use a Heapify operation!
Read More