码迷,mamicode.com
首页 > 编程语言 > 详细

分治递归:求数组元素的最大值,最小值

时间:2015-06-19 10:06:03      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

//分治递归,求数组元素的最大值,最小值
/**
 * 保存产生的最大值,最小值
 * @author Administrator
 *
 */
public class Values {
    private int max;
    private int min;
    
    public Values(int max,int min){
        this.max=max;
        this.min=min;
    }
    public int getMax() {
        return max;
    }
    public void setMax(int max) {
        this.max = max;
    }
    public int getMin() {
        return min;
    }
    public void setMin(int min) {
        this.min = min;
    }
}


/**
 * 分治递归找出数组元素中的最大数,最小数
 * @author Administrator
 *
 */
public class MinMax {
    public void min_max(int a[],int s,int e,Values values){
        Values lValues=new Values(0,0);
        Values rValues=new Values(0,0);
        
        if(e==s+1||e==s){
            if(a[s]>=a[e]){
                values.setMax(a[s]);
                values.setMin(a[e]);
            }
            else{
                values.setMax(a[e]);
                values.setMin(a[s]);
            }
            return;
        }
        
        int mid=(e+s)/2;
        min_max(a,mid+1,e,lValues);
        min_max(a,s,mid,rValues);
        values.setMax(lValues.getMax()>rValues.getMax()?lValues.getMax():rValues.getMax());
        values.setMin(lValues.getMin()<rValues.getMin()?lValues.getMin():rValues.getMin());
    }
}


/**
 * 分治递归找出数组元素中的最大数,最小数
 * @author Administrator
 *
 */
public class MinMax {
    public void min_max(int a[],int s,int e,Values values){
        Values lValues=new Values(0,0);
        Values rValues=new Values(0,0);
        
        if(e==s+1||e==s){
            if(a[s]>=a[e]){
                values.setMax(a[s]);
                values.setMin(a[e]);
            }
            else{
                values.setMax(a[e]);
                values.setMin(a[s]);
            }
            return;
        }
        
        int mid=(e+s)/2;
        min_max(a,mid+1,e,lValues);
        min_max(a,s,mid,rValues);
        values.setMax(lValues.getMax()>rValues.getMax()?lValues.getMax():rValues.getMax());
        values.setMin(lValues.getMin()<rValues.getMin()?lValues.getMin():rValues.getMin());
    }
}

 

分治递归:求数组元素的最大值,最小值

标签:

原文地址:http://www.cnblogs.com/grow1016/p/4587707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!