1 回答

TA貢獻1801條經驗 獲得超8個贊
問題是因為在該方法中,只有userID數組被排序,而donation數組沒有被相應地打亂。userID并且數組元素和數組元素之間沒有其他映射donation,因此兩個數組元素的打印都不會顯示先前的關聯。
因此,在您的方法中,每當您交換userID數組元素的位置時,您還必須交換相應donation數組元素的位置。這可以如下完成:
public static void selectionsort(int[] userID, double[] donation, PrintWriter output) {
int min, swap;
for (int i = 0; i < userID.length - 1; i++) {
min = i;
for (int m = i + 1; m < userID.length; m++) {
if (userID[m] < userID[i]) {
min = m;
swap = userID[min];
userID[min] = userID[i];
userID[i] = swap;
swap=donation[min];
donation[min]=donation[i];
donation[i]=swap;
}
}
output.println(userID[i] + " " + donation[i]);
}
}
添加回答
舉報