Java 通过另一个函数多次运行函数时如何存储某个值

Java 通过另一个函数多次运行函数时如何存储某个值,java,function,sorting,merge,inversion,Java,Function,Sorting,Merge,Inversion,我的问题是,我有两个函数,其中一个函数调用另一个函数,因为它多次这样做(rec),所以我想将我得到的值保存在第二个函数中(在我的例子中调用了Mergesort)。我实际上是在使用合并排序对列表进行排序,但我对知道反转的数量感兴趣,所以我想返回一个int,但我不知道如何存储该值,所以我可以将所有的值加在一起,最终得到反转的数量(是的,我知道存在一个O(n^2)算法来找到它)。我想你们大多数人都知道MergeSort算法,所以我不打算把它全部写出来,但从下面的代码中,你们可能会知道我在寻找什么。如果

我的问题是,我有两个函数,其中一个函数调用另一个函数,因为它多次这样做(rec),所以我想将我得到的值保存在第二个函数中(在我的例子中调用了Mergesort)。我实际上是在使用合并排序对列表进行排序,但我对知道反转的数量感兴趣,所以我想返回一个int,但我不知道如何存储该值,所以我可以将所有的值加在一起,最终得到反转的数量(是的,我知道存在一个O(n^2)算法来找到它)。我想你们大多数人都知道MergeSort算法,所以我不打算把它全部写出来,但从下面的代码中,你们可能会知道我在寻找什么。如果没有帮助,那么试着回答我上面解释的问题:)


您可以使用返回值来跟踪这一点。以下是一个通用示例:

int myRecursiveMethod() {

    ...

    // Base case
    if (someCondition) { return 1; }

    // Otherwise
    return myRecursiveMethod() + myRecursiveMethod() + 1;
}


int totalCount = myRecursiveMethod();

没有空间限制;请随意使用“你”而不是“你”…nvm,我明白了。我在数组A的末尾添加了一个额外的值,每次运行Mergesort函数时,它都会增加保存在数组中的值。我不确定我是否理解这一点:(
int myRecursiveMethod() {

    ...

    // Base case
    if (someCondition) { return 1; }

    // Otherwise
    return myRecursiveMethod() + myRecursiveMethod() + 1;
}


int totalCount = myRecursiveMethod();