Java数组/反向初学者
我是java语言的新手,我有一个问题需要解决,我很确定我做得很好,但是测试人员仍然崩溃 if必须做的一个简要总结是“在数组a内,反转是数组内同时满足iJava数组/反向初学者,java,arrays,inversion,Java,Arrays,Inversion,我是java语言的新手,我有一个问题需要解决,我很确定我做得很好,但是测试人员仍然崩溃 if必须做的一个简要总结是“在数组a内,反转是数组内同时满足ia[j]的一对位置i和j”。在组合数学中,数组内的反转计数是“无序”程度的粗略度量“那是一个数组。如果一个数组按升序排序,则它有零个反转,而按逆序排序的n元素数组有n(n-1)/2个反转,这是可能的最大数。此方法应计算给定数组arr内的反转数,并返回该计数“ 以下是我所做/尝试的 import java.util.Arrays; public
import java.util.Arrays;
public class P2J1
{
public static int countInversions(int[] arr)
{
int inversions = 0;
for (int i = 0; i <= arr.length; i++){
for (int j = i+1; j < i; j++){
if (arr[i] > arr[j]){
inversions++;
}
}
}
return inversions;
}
}
/// here's the tester
@Test public void testCountInversions() {
Random rng = new Random(SEED);
CRC32 check = new CRC32();
for(int i = 0; i < 1000; i++) {
int[] a = new int[i];
for(int j = 0; j < i; j++) {
a[j] = rng.nextInt(100000);
}
check.update(P2J1.countInversions(a));
}
assertEquals(1579619806L, check.getValue());
}
导入java.util.array;
公共类P2J1
{
公共静态整数倒数(int[]arr)
{
整数倒数=0;
对于(int i=0;i arr[j]){
倒置++;
}
}
}
收益倒置;
}
}
///这是测试仪
@测试公共void testCountInversions(){
随机rng=新随机(种子);
CRC32检查=新的CRC32();
对于(int i=0;i<1000;i++){
int[]a=新的int[i];
对于(int j=0;j
在Java中,数组索引是从0
到arr.length-1
,您需要更改i在Java中,数组索引是从0
到arr.length-1
,您需要更改i“在大多数编程语言中”是不相关的:在这种编程语言中,Java是正确的在大多数编程语言中“是不相关的:在这种编程语言中,Java是正确的。您需要i
。另外(int j=i+1;j
将执行零次迭代,因为j
开始时为false。您需要i
。还需要(int j=i+1;j
将执行零次迭代,因为j
开始时为false。