0
私のコードは自己説明だと思います。トラック配列要素の順序
public Town[] GetShortestDistanceBetweenTowns() {
Town[] allTowns = getTowns();
Town[] bestPath = allTowns;
int bestDistance = CalculateDistance(bestPath);
int newDistance = bestDistance;
//shuffle allTowns array and look for best distance
for(int i=0; i<100; i++) {
MixArray(allTowns);
newDistance = CalculateDistance(allTowns);
if (newDistance < bestDistance) {
bestPath = allTowns;
bestDistance = newDistance;
}
}
return bestPath;
}
私はそれはまた、私のbestPath
配列の順序を変更しているMixArray(allTowns)
を使用するときに問題があります。私はこの配列で最高の順序だけを保ちたい。私はそれで何ができますか?
さて、あなただけの1つの配列を持っている - あなたは 'bestPath'に(参照です)' allTowns'の値を代入しています。.. 2つの変数は同じ配列を参照します。 1つの要素を経由してその配列を変更すると、他の要素を介してその変更が表示されます。参照型が正常に動作するのと同じです。代わりに配列を複製したいでしょうか? –
また、[Dijkstra's Algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm)を見て、オブジェクトのコレクション間の最短距離を見つける必要があります –