如何加快函数“递归调用”的速度???
这是一个递归调用的例子,怎么样能使调用更快?请高手们多多指导!
#include<math.h>
#include<string.h>
#include<stdio.h>
age(int n)
{int c;
if(n==1) c=122020;
else c=age(n-1)+2;
return(c);
}
void main()
{
printf("%d\n",age(154962));
}
2008-01-01 22:17
2008-01-01 22:32
2008-01-01 22:34
2008-01-01 22:38
2008-01-01 22:41
2008-01-01 22:54
2008-01-02 09:11
2008-01-02 09:24
2008-01-02 09:28
程序代码:double Surplus(double A[],int m,int n) { /*求矩阵行列式*/
int i,j,k,p,r;
double X,temp=1,temp1=1,s=0,s1=0;
if (n==2) {
for (i=0;i<m;i++)
for (j=0;j<n;j++)
if ((i+j)%2) temp1*=A[i*n+j];
else temp*=A[i*n+j];
X=temp-temp1;
} else {
for (k=0;k<n;k++) {
for (i=0,j=k;i<m,j<n;i++,j++)
temp*=A[i*n+j];
if (m-i) {
for (p=m-i,r=m-1;p>0;p--,r--)
temp*=A[r*n+p-1];
}
s+=temp;
temp=1;
}
for (k=n-1;k>=0;k--) {
for (i=0,j=k;i<m,j>=0;i++,j--)
temp1*=A[i*n+j];
if (m-i) {
for (p=m-1,r=i;r<m;p--,r++)
temp1*=A[r*n+p];
}
s1+=temp1;
temp1=1;
}
X=s-s1;
}
return X;
}网上找的行列式算法,人家的是O(n2)的,你的是O(n3)的,估计会快一点点……其实我也不懂……
2008-01-02 09:58