//寻找数组最小值
int Find(int a[],int b[],int len)
{
if(len==1)
{
return min(a[0],b[0]);
}
int mid=(len-1)/2;//偶数取小的 奇数取中间
if(a[mid]==b[mid])
return a[mid];
else if(a[mid]<b[mid])
{
Find(a+len-mid-1,b,mid+1);
}
else
{
Find(a,b+len-mid-1,mid+1);
}
}
int Find_G(int a[],int b[],int len)
{
int mid;
while(1)
{
if(len==1)
return min(a[0],b[0]);
mid=(len-1)/2;//偶数取下,奇数取中
if(a[mid]==b[mid])
return a[mid];
else if(a[mid]<b[mid])
{
a=a+len-mid-1;
len=mid+1;
}
else
{
b=b+len-mid-1;
len=mid+1;
}
}
}
//不等长数组
int Find_GG(int a[],int lena,int b[],int lenb)
{
int mida=lena/2;//奇数取中间,偶数取上边
int midb=lenb/2;
int low=min(mida,midb);
if(lena==1)
{
if(lenb%2==0)
{//
if(a[0]>=b[midb])
{//则b[midb]为中点
return b[midb];
}
else if(a[0]<=b[midb-1])
return
中位数 (等长 不等长 DFS求卡特兰)
最新推荐文章于 2024-09-12 13:41:59 发布
本文介绍了如何使用递归方法寻找数组中位数,包括等长和不等长数组的情况,并通过深度优先搜索(DFS)解决卡特兰数问题,给出了具体的实现代码示例。
摘要由CSDN通过智能技术生成