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)