pgm16_16.txt

来自「c#版本 算法大全 几乎所有常见的算法 This file contain」· 文本 代码 · 共 47 行

TXT
47
字号
////   This file contains the C# code from Program 16.16 of//   "Data Structures and Algorithms//    with Object-Oriented Design Patterns in C#"//   by Bruno R. Preiss.////   Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng.  All rights reserved.////   http://www.brpreiss.com/books/opus6/programs/pgm16_16.txt//public class Algorithms{    public static Digraph FloydsAlgorithm(Digraph g)    {	int n = g.NumberOfVertices;	int[,] distance = new int[n, n];	for (int v = 0; v < n; ++v)	    for (int w = 0; w < n; ++w)		distance[v, w] = int.MaxValue;	foreach (Edge e in g.Edges)	{	    distance[e.V0.Number, e.V1.Number] = (int)e.Weight;	}	for (int i = 0; i < n; ++i)	    for (int v = 0; v < n; ++v)		for (int w = 0; w < n; ++w)		    if (distance[v, i] != int.MaxValue &&			distance[i, w] != int.MaxValue)		    {			int d = distance[v, i] + distance[i, w];			if (distance[v, w] > d)			    distance[v, w] = d;		    }	Digraph result = new DigraphAsMatrix(n);	for (int v = 0; v < n; ++v)	    result.AddVertex(v);	for (int v = 0; v < n; ++v)	    for (int w = 0; w < n; ++w)		if (distance[v, w] != int.MaxValue)		    result.AddEdge(v, w, distance[v, w]);	return result;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?