Shortest Distances Between Nodes in a Directed Graph

FLOYD is a C++ library which demonstrates Floyd's algorithm for finding the shortest distance between every pair of nodes in a directed graph.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


FLOYD is available in a C version and a C++ version and a FORTRAN90 version and a FORTRAN77 version and a MATLAB version.

Related Data and Programs:

BELLMAN_FORD, a C++ library which implements the Bellman-Ford algorithm for finding the shortest distance from a given node to all other nodes in a directed graph whose edges have been assigned real-valued lengths.

CITIES, a FORTRAN90 library which handles various problems associated with a set of "cities" on a map.

CITIES, a dataset directory which contains a number of city distance datasets.

CODEPACK, a FORTRAN90 library which computes "codes" that can determine if two graphs are isomorphic.

DIJKSTRA, a C++ program which runs a simple example of Dijkstra's minimum distance algorithm for graphs.

GRAFPACK, a FORTRAN90 library which computes various quantities associated with mathematical graphs.

GRAPH_REPRESENTATION, a data directory which contains examples of ways of representing abstract mathematical graphs

SUBSET, a C++ library which generates, ranks and unranks various combinatorial objects.

TOMS097, a C++ library which computes the distance between all pairs of nodes in a directed graph with weighted edges, using Floyd's algorithm.


  1. Robert Floyd,
    Algorithm 97: Shortest Path,
    Communications of the ACM,
    Volume 5, Number 6, page 345, June 1962.
  2. Michael Quinn,
    Parallel Programming in C with MPI and OpenMP,
    McGraw-Hill, 2004,
    ISBN13: 978-0071232654,
    LC: QA76.73.C15.Q55.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 27 November 2008.