首页 > 代码库 > 笔试题:排序后取最小差值数

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

 笔试题:要从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;}}

 

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