我的 TSP 算法有問題。我將插入代碼并解釋:List listOfPermutations = new ArrayList();while (cont.compareTo(deleteRutes) < 0) { listOfPermutations.add(indexOfCities); nextPermutation(indexOfCities); ....我遇到的問題如下,我的想法是在一個列表中插入所有可能的排列(數(shù)組),但問題是列表總是取數(shù)組的相同值,這是合乎邏輯的,因為 indexOfCities 數(shù)組只是一。我已經(jīng)退還了一段時間,我不知道如何解決。有人能幫我嗎?
1 回答

楊魅力
TA貢獻1811條經(jīng)驗 獲得超6個贊
indexOfCities
持有對數(shù)組的引用。這個相同的引用作為項目添加到listOfPermutations
with
listOfPermutations.add(indexOfCities);
在每次循環(huán)迭代中。
然后數(shù)組被修改為
nextPermutation(indexOfCities);
在每次循環(huán)迭代中。所以存儲的引用都指向同一個修改過的數(shù)組。
為了解決這個問題,在加入數(shù)組的副本indexOfCities
來listOfPermutations
代替。例如像這樣:
int[] indexOfCitiesAux = indexOfCities.clone(); listOfPermutations.add(indexOfCitiesAux);
添加回答
舉報
0/150
提交
取消