/* Note:Your choice is C IDE */
#include "stdio.h"
//分治算法:将原问题分解成若干个子问题、通过解决子问题最终解决原问题
int fenzhi(int a[],int zuo,int you)
{
int mid;
int zmin,ymin;
mid=(zuo+you)/2;
if(zuo==you)
{
return a[zuo];//只有一个数,返回这个数
}
zmin=fenzhi(a,zuo,mid);//查找左区间最小值
ymin=fenzhi(a,mid+1,you);//查找右区间的最小值
//return zmin<ymin?zmin:ymin;
if(zmin<ymin)
{
return zmin;
}
else
{
return ymin;
}
}
void main()
{
int i;//循环变量
int min;
int n;//初始化个数
int a[100];
printf("请输入初始化数据个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
//调用分治函数 查找数组最小值
min=fenzhi(a,0,n-1);
printf("数组中最小值:%d\n",min);
}