我的 TSP 算法有问题。我将插入代码并解释:List listOfPermutations = new ArrayList();while (cont.compareTo(deleteRutes) < 0) { listOfPermutations.add(indexOfCities); nextPermutation(indexOfCities); ....我遇到的问题如下,我的想法是在一个列表中插入所有可能的排列(数组),但问题是列表总是取数组的相同值,这是合乎逻辑的,因为 indexOfCities 数组只是一。我已经退还了一段时间,我不知道如何解决。有人能帮我吗?
1 回答
杨魅力
TA贡献1811条经验 获得超6个赞
indexOfCities
持有对数组的引用。这个相同的引用作为项目添加到listOfPermutations
with
listOfPermutations.add(indexOfCities);
在每次循环迭代中。
然后数组被修改为
nextPermutation(indexOfCities);
在每次循环迭代中。所以存储的引用都指向同一个修改过的数组。
为了解决这个问题,在加入数组的副本indexOfCities
来listOfPermutations
代替。例如像这样:
int[] indexOfCitiesAux = indexOfCities.clone(); listOfPermutations.add(indexOfCitiesAux);
添加回答
举报
0/150
提交
取消