Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,63 @@
|
|||
Module Module1
|
||||
|
||||
Sub PrintResult(dist As Double(,), nxt As Integer(,))
|
||||
Console.WriteLine("pair dist path")
|
||||
For i = 1 To nxt.GetLength(0)
|
||||
For j = 1 To nxt.GetLength(1)
|
||||
If i <> j Then
|
||||
Dim u = i
|
||||
Dim v = j
|
||||
Dim path = String.Format("{0} -> {1} {2,2:G} {3}", u, v, dist(i - 1, j - 1), u)
|
||||
Do
|
||||
u = nxt(u - 1, v - 1)
|
||||
path += String.Format(" -> {0}", u)
|
||||
Loop While u <> v
|
||||
Console.WriteLine(path)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub FloydWarshall(weights As Integer(,), numVerticies As Integer)
|
||||
Dim dist(numVerticies - 1, numVerticies - 1) As Double
|
||||
For i = 1 To numVerticies
|
||||
For j = 1 To numVerticies
|
||||
dist(i - 1, j - 1) = Double.PositiveInfinity
|
||||
Next
|
||||
Next
|
||||
|
||||
For i = 1 To weights.GetLength(0)
|
||||
dist(weights(i - 1, 0) - 1, weights(i - 1, 1) - 1) = weights(i - 1, 2)
|
||||
Next
|
||||
|
||||
Dim nxt(numVerticies - 1, numVerticies - 1) As Integer
|
||||
For i = 1 To numVerticies
|
||||
For j = 1 To numVerticies
|
||||
If i <> j Then
|
||||
nxt(i - 1, j - 1) = j
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
For k = 1 To numVerticies
|
||||
For i = 1 To numVerticies
|
||||
For j = 1 To numVerticies
|
||||
If dist(i - 1, k - 1) + dist(k - 1, j - 1) < dist(i - 1, j - 1) Then
|
||||
dist(i - 1, j - 1) = dist(i - 1, k - 1) + dist(k - 1, j - 1)
|
||||
nxt(i - 1, j - 1) = nxt(i - 1, k - 1)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Next
|
||||
|
||||
PrintResult(dist, nxt)
|
||||
End Sub
|
||||
|
||||
Sub Main()
|
||||
Dim weights = {{1, 3, -2}, {2, 1, 4}, {2, 3, 3}, {3, 4, 2}, {4, 2, -1}}
|
||||
Dim numVeritices = 4
|
||||
|
||||
FloydWarshall(weights, numVeritices)
|
||||
End Sub
|
||||
|
||||
End Module
|
||||
Loading…
Add table
Add a link
Reference in a new issue