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]);
}
}
添加回答
举报