Data Structures and Algorithms
with Object-Oriented Design Patterns in C#![]() ![]() ![]() ![]() ![]() |
An implementation of Prim's algorithm is shown in Program .
This implementation is almost identical
to the version of Dijkstra's algorithm
given in Program
.
In fact, there are only four differences between the two algorithms.
These are found on lines 3, 23-25, 34, and 36.
The PrimsAlgorithm method takes two arguments.
The first is an undirected graph instance.
We assume that the graph is edge-weighted
and that the weights are ints.
The second argument is the number of the start vertex, .
The PrimsAlgorithm method returns a minimum-cost spanning tree represented as an undirected graph. Therefore, the return value is a Graph.
The running time of Prim's algorithm is asymptotically the same as Dijkstra's algorithm. That is, the worst-case running time is
when adjacency lists are used, and
when adjacency matrices are used to represent the input graph.