私のバブルソートコードは、最初の配列アイテムのみを交換しています。他のすべての項目は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つです。誰かがまだ助けてくれるなら、私はそれを大いに感謝します。