У меня есть массив (nodes[][]
), который содержит значения эффективных расстояний, которые выглядят примерно так:
__ __
|1 0.4 3 |
|0.4 1 0 |
|3 3.2 1 ... |
|0.8 4 5 |
|0 0 1 |
-- --
Где первое значение, node[0][0]
- это расстояние от узла 0 до узла 0, которое равно 1.
Таким образом, расстояние от узла 2 до узла 1 составляет 3,2 (node[2][1]=3.2
)
Мне нужно, учитывая столбец узла, искать в строках, чтобы найти самое дальнее расстояние, не выбирая себя (node[1][1]
)
Метод, который я думал сделать что-то вроде этого:
int n=0;
currentnode=0; //this is the column I am searching now
if(currentnode==n)
n++;
best=node[n][currentnode];
nextbest=node[n++][currentnode];
if(nextbest>best)
best=nextbest;
else
for(int x=n;x<max;x++) //max is the last column
{
if(currentnode==n)
continue;
nextbest=node[x][currentnode];
if(nextbest>best)
best=nextbest;
}
Я не могу придумать лучшего способа сделать это. Я мог бы использовать функции, чтобы сделать его короче, но это в общем то, что я думаю об использовании. После этого я должен повторить цикл, чтобы перейти к следующему столбцу, который возвращает наилучшее расстояние, и снова выполнить эту процедуру.