Мы столкнулись с этой проблемой Графа, и нам нужно было реализовать Floyd Warshall, Так мы и сделали. Хотя мы не любили алгоритм, потому что он очень медленный.Параллельный linq на floyd warshall
Мы хотели бы знать, если это возможно применить Parallel LINQ на втором цикле, так что мы можем ускорить алгоритм немного
Вопрос: Ускорить цикл с варом
i
private int[,] FloydWarshall(int[,] matrix)
{
var loopCount = matrix.GetLength(0);
var next = CreatePredecessorMatrix(matrix);
for (var k = 0; k < loopCount; k++)
{
for (var i = 0; i < loopCount; i++)
{
for (var j = 0; j < loopCount; j++)
{
if (matrix[i, j] > matrix[i, k] + matrix[k, j])
{
matrix[i, j] = matrix[i, k] + matrix[k, j];
next[i, j] = next[k, j];
}
}
}
}
return next;
}
Попробуйте написать в браузере Floyd Warshall параллельно с реализацией и нажмите несколько ссылок, которые вы увидите. Это сделает ваш вопрос устаревшим. –