java分治_java分治算法的问题

publicstaticvoidmain(String[]args){int[]array={3,4,15,35,100,0,34,44,22,60,56,1,22,5};MaxMinresult=findMaxMin(array,0,array.length-1);System.out.println("max:"+result.get...

public static void main(String[] args){

int[] array={3,4,15,35,100,0,34,44,22,60,56,1,22,5};

MaxMin result=findMaxMin(array,0,array.length-1);

System.out.println("max: "+result.getMax());

System.out.println("min: "+result.getMin());

}

public static MaxMin findMaxMin(int[] arr,int b,int e){

if(e-b<=1){

if(arr[b]>arr[e])

return new MaxMin(arr[b],arr[e]);

else

return new MaxMin(arr[e],arr[b]);

}

MaxMin mml=findMaxMin(arr,b,(e-b)/2);

MaxMin mmr=findMaxMin(arr,(e-b)/2+1,e);

int maxV, minV;

if(mml.getMax()>mmr.getMax()){

maxV=mml.getMax();

}

else{

maxV=mmr.getMax();

}

if(mml.getMin()

minV=mml.getMin();

}

else{

minV=mmr.getMin();

}

return new MaxMin(maxV,minV);

}

}

//MaxMin是一个简单的类,就是对int max,int min的简单封装,程序运行显示内存溢出,(就是分治法求数组的最大最小值的),求指点哪里出问题了

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值