Graph Theory37 sections · 1633 units
Open in Course

Download Speed - Implementation

(Edmonds-Karp code)

Here is the download speed implementation:

function downloadSpeed(n, m, edges):
    // Build capacity matrix
    capacity = 2D array of size n x n, all 0
    adj = adjacency list

    for (u, v, c) in edges:
        capacity[u][v] = capacity[u][v] + c
        adj[u].append(v)
        adj[v].append(u)

    // Run Edmonds-Karp from 1 to n
    maxFlow = edmondsKarp(n, 1, n, capacity, adj)

    print maxFlow

Remember to handle multiple edges between same nodes by summing capacities.

Time: O(VE2)O(VE^2). Space: O(V+E)O(V + E).