我的冒泡排序代码只交换第一个数组项。所有其他项目都保留为 0。我认为我的嵌套循环是错误的,或者我还无法正确诊断它。所以这是我的代码。
public void swap(int i, int j) {
int temp;
temp = i;
i = j;
j = temp;
}
public void sortArray(int [] sourceArray, int [] targetArray, int allArraySize){
for(int i = 0; i < allArraySize; i++) {
targetArray[i] = sourceArray[i];
for (i = 0; i < allArraySize; i++) {
for(int j = i+1; j < allArraySize;j++) {
if(targetArray[i] > targetArray[j]) {
swap(i, j);
}
}
}
}
}
非常感谢您的反馈。我(显然)是编程新手。我已将代码更改为此。
public void sortArray(int [] sourceArray, int [] targetArray, int allArraySize){
int temp;
for(int i = 0; i < allArraySize; i++) {
targetArray[i] = sourceArray[i];
for (i = 0; i < allArraySize; i++) {
for(int j = i+1; j < allArraySize;j++) {
if(targetArray[i] > targetArray[j]) {
temp = targetArray[i];
targetArray[i] = targetArray[j];
targetArray[j] = temp;
}
}
}
}
}
结果仍然只是交换 1 项,但现在是最后 1 项。如果有人仍然能够提供帮助,我将不胜感激。