我正在尝试计算数组中的反转次数。当它应该是4时,我得到3的结果。这是我的代码。
int[] array1 = new int[5];
array1[0] = 3;
array1[1] = 7;
array1[2] = 10;
array1[3] = 6;
array1[4] = 4;
int count = 0;
for(int i =0;i<array1.length;i++){
for(int j =i+1;j<array1.length;j++){
if(array1[i]> array1[j] ){
count++;
}
}
}
System.out.println(count);
任何人都知道为什么这样做?感谢
答案 0 :(得分:0)
i++
和j++
索引增量不应在for
循环体中重复,因为它们已存在于for
循环条件的同一行中。
答案 1 :(得分:0)
删除j ++和i ++。同时将j的初始位置更改为i + 1,而不是0。
int[] array1 = new int[5];
array1[0] = 3;
array1[1] = 7;
array1[2] = 10;
array1[3] = 6;
array1[4] = 4;
int count = 0;
for(int i =0;i<array1.length;i++){
for(int j=i+1;j<array1.length;j++){
if(array1[i]> array1[j] ){
count++;
}
}
}
System.out.println(count);