Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每个子阵列的中间值_Java_Recursion - Fatal编程技术网

Java 每个子阵列的中间值

Java 每个子阵列的中间值,java,recursion,Java,Recursion,以下错误显示: 在圆括号处.check.printcombination(check.java:51) 在圆括号处.check.printcombination(check.java:58) 我的第51行和第56行在下面的代码中有注释 package parenthesis; import java.util.*; public class check { public static void main(String args[]) { int arr[] = {

以下错误显示: 在圆括号处.check.printcombination(check.java:51)

在圆括号处.check.printcombination(check.java:58) 我的第51行和第56行在下面的代码中有注释

package parenthesis;

import java.util.*;

public class check {

    public static void main(String args[]) {
        int arr[] = { 12, 13, 14, 15, 16, 17, 18, 19 };

        function(arr, 0, 7);
    }

    public static void function(int arr[], int start, int end) {
        int mid;

        mid = (start + end) / 2;

        printcombination(arr, start, end, mid);
    }

    public static void printcombination(int arr[], int start, int end, int mid) {

        System.out.print(arr[mid] + " "); //// error

        if ((start == mid) && (mid == end)) {
            return;
        }

        printcombination(arr, start, mid - 1, (start + mid - 1) / 2); //// error

        printcombination(arr, mid + 1, end, (mid + 1 + end) / 2);

    }

}

尝试或代替and:
如果((start==mid)| |(mid==end))

第34行出现错误的递归(“printcombination(arr,start,mid-1,(start+mid-1)/2);///error”),这里会抛出StackOverflower错误。 “printcombination”方法的递归流程为:

start=0,mid=3,end=7,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

start=0,mid=1,end=2,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

开始=0,中间=0,结束=0,返回

开始=0,中间=1,结束=2,调用“打印组合(arr,中间+1,结束,(中间+1+结束)/2”

开始=0,中间=3,结束=7,调用打印组合(arr,中间+1,结束,(中间+1+结束)/2)

start=4,mid=5,end=7,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

开始=4,中间=4,结束=4,返回

开始=4,中间=5,结束=7,调用“打印组合(arr,中间+1,结束,(中间+1+结束)/2”

start=6,mid=6,end=7,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

start=6,mid=5,end=5,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

start=6,mid=5,end=4,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”

start=6,mid=5,end=4,调用“打印组合(arr,start,mid-1,(start+mid-1)/2”


您是否正在尝试实现某种二进制函数?RU试图做什么。如果您这样说,我们可以提供更好的帮助。错误的其余部分是什么?您是否尝试过调试?另外,格式化代码以使其更易于阅读。看起来您在检查二进制函数变体中递归调用的边界方面遇到了问题搜索功能?您可能想添加这些行上发生的错误,也不清楚为什么在58处提到错误,在56处提到注释。这似乎是一个课程作业。