如何将整数数组拆分为两个

时间:2017-04-04 11:58:00

标签: java arrays

我想把我的阵列分成上下两部分 但它不会工作 它只是为我打印排序 我把随机打印语句放在一起,以确保条件为真,它是

在偶数条件下,它读取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是整个阵列的中位数

3 个答案:

答案 0 :(得分:1)

替代解决方案:

int[] firstHalf = Arrays.copyOfRange(array, 0, array.length/2);
int[] secondHalf = Arrays.copyOfRange(array, array.length/2, array.length);

然后,您当然可以执行median()方法:

int firstMedian = median(firstHalf);

请记住,您不必重新发明轮子,但您必须让车轮适合您的车。

答案 1 :(得分:0)

这不是一个好主意,因为如果你说arraylist不是一个公正的数字它会崩溃。你能解释一下你的内容吗?

答案 2 :(得分:0)

// double median(int[] arr, int start, int end)
double hiMedian = median(arr, 0, array.length / 2);
double loMedian = median(arr, array.length / 2, array.length);

请注意,建议不要在一般情况下制作阵列副本。仅仅计算范围就足够了。第一和最终指数。