笔试题:排序后取最小差值数

 笔试题:要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。 Smple input:161 189 167 172 188 Sample outPut: 188 189 
public class demo06{
public static void main(String[] args){
int[] arr={161,189,167,172,188};//原始值
//将原始值升序排序
getSort(arr);
//升序排序后,取出最小差值,记录最小差值下标
int[] arrDiff=new int[4];
int min=arr[1]-arr[0];
int index=-1;
int output1=0,output2=0;
for(int i=0;i<4;i++){
if(getDifferent(arr[i+1],arr[i])<=min)
    index=i;
}
System.out.println("身高差值最小的两个同学按升序排序输出为:"+arr[index]+","+arr[index+1]);
}
//将数组升序排序
public static int[] getSort(int[] arr){
int length=arr.length;
System.out.println(length);
for(int j=0;j<length-1;j++){
if(getDifferent(arr[j],arr[j+1])>0){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
return arr;
}
//两两相减,得到差值
public static int getDifferent(int a,int b){
return a-b;
}
}
原文地址:https://www.cnblogs.com/miaoying/p/5916301.html