| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 513 人关注过本帖
标题:初学者关于分治法的问题
只看楼主 加入收藏
精灵鼠
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-11
收藏
 问题点数:0 回复次数:2 
初学者关于分治法的问题

题目:给定数组a ,用分治法设计一个算法,找出a中元素的最大值和最小值。
这是我的程序,输出结果不正确,请各位高手帮忙改正。谢谢!
class MaxMin{
public static int Max(int left,int right,int []a){
int a1=a[align=left];
left=0;
right=a.length-1;
int m= (left+right) / 2;
if(a1<a[align=right])
{a1=a[align=right];
}
return a1;
}
public static int Min(int left,int right,int []a){
int b1=a[align=left];
if(b1>a[align=right])
{b1=a[align=right];
}
return b1;
}
}

class MaxMin1
{
public static void main(String args[]){
int Max ,Min,Max1,Min2,Max2,Min1;
int a[]={58,23,45,56,78,89,15,26,48,79,123,100};
MaxMin ob=new MaxMin();
if(a.length==1) Max=Min=a[1];
if (a.length==2) {
if(a[0]<a[1])
{
System.out.println("Max="+a[1]);
System.out.println("Min="+a[0]);
}
else{
System.out.println("Max="+a[0]);
System.out.println("Min="+a[1]);
}
}
if(a.length>2){
int left=0;
int right=a.length-1;
int m;
m= (left+right)/2;
Max1=ob.Max(0,m,a);
Max2=ob.Max(m+1,a.length-1,a);
Min1=ob.Min(0,m,a);
Min2=ob.Min(m+1,a.length-1,a);
if(Max1>Max2)Max=Max1;
else Max=Max2;
if(Min1>Min2)Min=Min1;
else Min=Min2;
System.out.println("Max="+ Max);
System.out.println("Min="+ Min);
}
}
}

搜索更多相关主题的帖子: 治法 
2006-10-29 07:54
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
不知道这个分治法是怎么个算法...
但看上去太麻烦了,还不如冒泡沉底来的方便...

向着软件工程师的目标前进!
2006-10-29 08:16
精灵鼠
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-11
收藏
得分:0 

谢谢,我们学的是算法设计与分析,后面题要这么写的。

2006-10-30 11:23
快速回复:初学者关于分治法的问题
数据加载中...
 
   



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

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