怎么用一个递归函数来返回一个数组中的最小值阿?
怎么用一个递归函数来返回一个数组中的最小值,请指点一下……
程序代码:
root@~ #cat min.c
#include <stdio.h>
int main (void) {
int a[10]={-2,3,4,1,4,5,6,8,19,0};
int min(int a[],int n);
printf("min=%i\n",min(a,10));
return 0;
}
int min(int a[],int n) {
int v1,v2,v3;
if(n==1) return a[0];
if(n%2==0) {
v1=min(a,n/2);
v2=min(a+n/2,n/2);
if(v1<v2) return v1;
else return v2;
}
if(n%2!=0) {
v1=min(a,n/2);
v2=min(a+n/2+1,n/2);
v3=a[n/2];
if(v1<v2) {
if(v1<v3) return v1;
else return v3;
}else {
if(v2<v3) return v2;
else return v3;
}
}
}
root@~ #./min
min=-2
root@~ #









