原创作品,转载请注明出处:https://www.cnblogs.com/sunshine5683/p/9927186.html
今天在工作中遇到对一个已知的一维数组取出其最大值和最小值,分别用于参与其他运算,废话不多说,直接上代码。
package xhq.text;
public class Maxmin {
static int count =0;
public static void main(String args[]){
// 实例化对象
Maxmin maxmin = new Maxmin();
// 创建数组
int[] array = new int[]{10,23,45,11,757,2,1236,768,1,-9,11111111};
// 取得最小值
int max = maxmin.getMax(array,0,array.length-1);
int min = maxmin.getMin(array,0,array.length-1);
// 输出
System.out.println("最大值:"+max);
System.out.println("最小值:"+min);
}
// 求最大值
public int getMax(int[] array,int i, int j){
int Maxx = 0;
int Maxy = 0;
if(i==j){
return Maxx = Maxy = array[j];
}else if(i == (j-1)){
Maxx= array[i];
Maxy = array[j];
return Maxx > Maxy ? Maxx : Maxy;
}else{
int mid = (i+j)/2;
Maxx = getMax(array, i, mid);
Maxy = getMax(array, mid, j);
return Maxx > Maxy ? Maxx:Maxy;
}
}
// 求最小值
public int getMin(int[] array, int i, int j){
int Minx = 0;
int Miny = 0;
if(i == j){
return Minx = Miny = array[j];
}else if (i==(j-1)){
Minx = array[i];
Miny = array[j];
return Minx > Miny ? Miny:Minx;
}else{
int mid = (i+j)/2;
Minx = getMin(array, i, mid);
Miny = getMin(array, mid, j);
return Minx > Miny?Miny:Minx;
}
}
}
这样,就得到了想要的结果,java的学习不只是这么简单,但是每一次的总结,都是为了更好的学习,为了给以后的工作和学习带来方便,本人也是新手,大佬勿喷,有不周到的地方,欢迎大家批评指正!