Мне нужна помощь, чтобы получить минимальное значение строки и вывести его на экран, но вот мой вопрос.Если значение matrix[i][j]
совпадает с matrix[j][i]
, я не хочу повторяться и хочу найти следующее минимальное значение.
У меня есть график.Я рассчитал кратчайший путь для каждой точки.Например, точка [0][1]
имеет то же расстояние, что и [1][0]
, потому что они должны быть связаны.Теперь настало время суммировать все кратчайшие значения (кроме 0) и дать ему стоимость.На рисунке я получил пример матрицы.
![example matrix](https://i.stack.imgur.com/HZxHN.png)
Мне нужно установить соединение таким образом.1-5, 2-5, 3-5, 5-6, 6-4 ... это будет самая низкая стоимость для подключения этих городов.Моя проблема в том, что мне нужно найти способ справиться, если точка 4-6 связана, мне не нужно суммировать 6-4, потому что они одинаковы.
void smallestInRow()
{
cout << " { ";
for (int i = 0; i < numOfVertices; i++) {
// initialize the minimum element
// as first element
int minm = 999999999;
for (int j = 1; j < numOfVertices; j++) {
// check if any element is smaller
// than the minimum element of the row
// and replace it
if (matrix[i][j] < minm && matrix[i][j] != 0)
minm = matrix[i][j];
}
// print the smallest element of the row
cout << minm << ", ";
}
cout << "}";
}