标题:求一分治算法
取消只看楼主
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
 问题点数:0 回复次数:2 
求一分治算法

有一17个元素的整形数组
寻找最大元素和次大元素

搜索更多相关主题的帖子: 算法 分治 
2006-05-28 16:25
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
得分:0 
各位帮帮忙啊

2006-05-28 16:26
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
得分:0 
这是soft_wind提供的递归算法

#include "stdio.h"
#include "conio.h"
void maxmin(int a[],int n,int *max,int *min)
{
int a1[5],a2[5];
int i,j,k=0;
int max1,max2,min1,min2;
if(n==1)
*max=*min=a[0];
else if(n==2)
{
if(a[0]>a[1])
{
*max=a[0];
*min=a[1];
}
else
{
*max=a[1];
*min=a[0];
}
}
else
{
for(i=0;i<n/2;i++)
a1[i]=a[i];
for(j=i;j<n;j++)
a2[k++]=a[j];
maxmin(a1,n/2,&max1,&min1);
maxmin(a2,(n-n/2),&max2,&min2);
if (max1 > max2)
*max = max1;
else
*max = max2;
if (min1 > min2)
*min = min2;
else
*min = min1;
}

}
main()
{
int a[10]={1,12,21,4,57,78,95,43,100,23};
int max,min;
maxmin(a,10,&max,&min);
printf("%d %d",max,min);
getch();
}


2006-05-29 22:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-68010-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.452429 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved