import java.util.Arrays;
import java.util.Random;
public class Min4Of25 {
public static void main(String[] args) {
int[] a=new int[25];
Random ran=new Random();
for(int i=0;i<25;i++){
a[i]=ran.nextInt(100);
}
int[] aSort4=Arrays.copyOf(a, 25);
Arrays.sort(aSort4);
aSort4=Arrays.copyOf(aSort4, 4);
int[] test=Min4Of25(a);
System.out.println(Arrays.toString(aSort4));
System.out.println(Arrays.toString(test));
if(aSort4[0]==test[0] && aSort4[1]==test[1] && aSort4[2]==test[2] && aSort4[3]==test[3]){
System.out.println("测试通过!");
}else {
System.out.println("测试失败?????????????????????????");
}
}
public static int[] Min4Of25(int[] ary) {
if(ary.length!=25) return null;
int[][] ff=new int[5][5];
int[] res=new int[4];
for(int i=0;i<5;i++){
System.arraycopy(ary, 5*i, ff[i], 0, 5);
f(ff[i]);//5次
}
int[] max={ff[0][0],ff[1][0],ff[2][0],ff[3][0],ff[4][0]};
f(max);//6次
res[0]=max[0];
for(int j=0;j<4;j++){
for(int i=j;i<5;i++){
if(ff[i][0]==max[j]){
int[] tem=Arrays.copyOf(ff[i],5);
ff[i]=Arrays.copyOf(ff[j],5);
ff[j]=Arrays.copyOf(tem,5);
break;
}
}
}//5组重新排
int[] mid={ff[0][1],ff[0][2],ff[1][0],ff[1][1],ff[2][0]};
f(mid);//7次
res[1]=mid[0];
res[2]=mid[1];
int[] min={ff[0][3],ff[1][2],ff[2][1],ff[3][0],mid[2]};
f(min);//8次
res[3]=min[0];
return res;
}
public static void f(int[] ary) {
if(ary.length==5)
Arrays.sort(ary);
}
}