我想将数组拆分成上下两部分 但它不会工作 它只是为我打印排序 我把随机打印语句确保条件是真实,是如何将一个整数数组拆分为两个
在偶调节它读取if和for语句 但奇怪的是只读取if语句
这里是我的代码
public static int GetTheLowerHalfandUpperHalf(int[] array) {
int size = array.length;
int even = size%2;
if (even == 0) {
//print the lower half
for(int i=0; i==even;i++) {
int[] upper;
upper = new int[i];
System.out.println("The UPPER half is: "+Arrays.toString(upper));
System.out.println("Q3 = " +median(upper));
}
//print the upper half
for (int j=(even+1);j==size;j++) {
int[] lower;
lower=new int[j];
System.out.println("The UPPER half is: "+Arrays.toString(lower));
System.out.println("Q1 = " +median(lower));
}
} else if ((array.length % 2) != 0) {
//print the lower half
for (int i=0;i==(Q2-1);i++) {
int[] upper;
upper = new int[i];
System.out.println("The UPPER half is: "+Arrays.toString(upper));
System.out.println("Q3 = " +median(upper));
}
//print the upper half
for(int j=(Q2+1) ;j==size ;j++){
int[] lower;
lower=new int[j];
System.out.println("The UPPER half is: "+Arrays.toString(lower));
System.out.println("Q1 = " +median(lower));
}
}
return 0;
}
Q2是整个阵列的
'for'循环的第二个段定义了它何时运行,而不是何时停止。例如,for(int j =(even + 1); j == size; j ++)'通常看起来更像'for(int j =(even + 1); j
这个:'int even = size%2;'意味着偶数的even将为0,奇数的为偶数。这个:for(int i = 0; i == even; i ++){'意味着这个循环永远不会执行偶数。至少你需要这样一些东西:'int halfArrayMarker =(int)array.size/2;'然后你替换'for(int i = 0; i == even; i ++){'with'for (int i = 0; i == halfArrayMarker; i ++){'。 当你说“整个数组的中位数”时,你是指所有数值的平均值,还是标记数组的中点? – npinti
我的意思是数组的中点。 –