C++ 在求解一个递推方程时遇到困难

C++ 在求解一个递推方程时遇到困难,c++,algorithm,recursion,recurrence,C++,Algorithm,Recursion,Recurrence,下面是我正在使用的方程式(我从过去的一个考试题中出错): void foo(float[]数组,int start,int end){ 如果((end start)为了表示法的简单性,让我们调用N=end start 然后: foo(数组,开始,开始+y);//T(2/5*N) 对于(index=y;index,我想第一部分应该是T(N/5)。否则,这很好。您应该将end-start表示为N=D void foo(float[] array, int start, int end){ i

下面是我正在使用的方程式(我从过去的一个考试题中出错):

void foo(float[]数组,int start,int end){
如果((end start)
为了表示法的简单性,让我们调用N=end start
然后:
foo(数组,开始,开始+y);//T(2/5*N)

对于(index=y;index,我想第一部分应该是
T(N/5)
。否则,这很好。您应该将
end-start
表示为
N
=D
void foo(float[] array, int start, int end){
    if((end-start) <= 1) return;

    int x = (end-start) / 5;
    int y = 2*x;
    int z = 4*x;

    foo(array,start,start+y);
    for(index = y; index <z; index++){
            array[index]++;
    }
    foo(array,start+z,end);
}
for notation simplicity, lets call N = end-start
then:
 foo(array,start,start+y);  // T(2/5 * N)
 for(index = y; index <z; index++)  // 2/5 * N
 foo(array,start+z,end);  // T(N/5)

T(N) = T(2/5 * N) + 2/5 * N + T(N/5)