类 DijkstraAllPairsSP
- java.lang.Object
-
- edu.princeton.cs.algs4.DijkstraAllPairsSP
-
public class DijkstraAllPairsSP extends java.lang.ObjectTheDijkstraAllPairsSPclass represents a data type for solving the all-pairs shortest paths problem in edge-weighted digraphs where the edge weights are nonnegative.This implementation runs Dijkstra's algorithm from each vertex. The constructor takes time proportional to V (E log V) and uses space proprtional to V2, where V is the number of vertices and E is the number of edges. Afterwards, the
dist()andhasPath()methods take constant time and thepath()method takes time proportional to the number of edges in the shortest path returned.For additional documentation, see Section 4.4 of Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
-
-
构造器概要
构造器 构造器 说明 DijkstraAllPairsSP(EdgeWeightedDigraph G)Computes a shortest paths tree from each vertex to to every other vertex in the edge-weighted digraphG.
-
方法概要
修饰符和类型 方法 说明 doubledist(int s, int t)Returns the length of a shortest path from vertexsto vertext.booleanhasPath(int s, int t)Is there a path from the vertexsto vertext?static voidmain(java.lang.String[] args)Unit tests theDijkstraAllPairsSPdata type.java.lang.Iterable<DirectedEdge>path(int s, int t)Returns a shortest path from vertexsto vertext.
-
-
-
构造器详细资料
-
DijkstraAllPairsSP
public DijkstraAllPairsSP(EdgeWeightedDigraph G)
Computes a shortest paths tree from each vertex to to every other vertex in the edge-weighted digraphG.- 参数:
G- the edge-weighted digraph- 抛出:
java.lang.IllegalArgumentException- if an edge weight is negativejava.lang.IllegalArgumentException- unless0 <= s < V
-
-
方法详细资料
-
path
public java.lang.Iterable<DirectedEdge> path(int s, int t)
Returns a shortest path from vertexsto vertext.- 参数:
s- the source vertext- the destination vertex- 返回:
- a shortest path from vertex
sto vertextas an iterable of edges, andnullif no such path - 抛出:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
hasPath
public boolean hasPath(int s, int t)Is there a path from the vertexsto vertext?- 参数:
s- the source vertext- the destination vertex- 返回:
trueif there is a path from vertexsto vertext, andfalseotherwise- 抛出:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
dist
public double dist(int s, int t)Returns the length of a shortest path from vertexsto vertext.- 参数:
s- the source vertext- the destination vertex- 返回:
- the length of a shortest path from vertex
sto vertext;Double.POSITIVE_INFINITYif no such path - 抛出:
java.lang.IllegalArgumentException- unless0 <= s < Vjava.lang.IllegalArgumentException- unless0 <= t < V
-
main
public static void main(java.lang.String[] args)
Unit tests theDijkstraAllPairsSPdata type.- 参数:
args- the command-line arguments
-
-