class Test18 {
public static void main(String[] args){
int[] arr = {6,2,9,15,1,5,20,7,18};
/*
思路:创建两个方法获取最值得角标,再创建元素交换的方法,,最后输出数组
*/
printArry(arr);
}
public static void printArry(int[] arr){
int maxIndex = getMaxIndex(arr); //maxIndex接收最大值角标
int minIndex = getMinIndex(arr); //maxIndex接收最小值角标
reverseArry(arr,maxIndex,arr.length-1); //把数组和需要交换的两个数据穿进去
reverseArry(arr,minIndex,0); //把数组和需要交换的两个数据穿进去
for (int i=0; i<arr.length; i++) {
System.out.print(arr[i]+" "); //最后在遍历出来
}
}
public static void reverseArry(int[] arr,int i,int j){ //元素交换反方法
int temp = 0;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static int getMaxIndex(int[] arr){ //获取最值角标得方法
int maxIndex = 0; //创建最大值角标变量
for (int i=0; i<arr.length; i++) {
if (arr[maxIndex]<arr[i]) { //判断有比最大值大时角标赋值过来
maxIndex = i;
}
}
return maxIndex;
}
public static int getMinIndex(int[] arr){ //获取最小值角标
int minIndex = 0; //假设最小值角标为0
for (int i=0; i<arr.length; i++) {
if (arr[minIndex]>arr[i]) { //比大小
minIndex = i;
}
}
return minIndex;
}
}
|
|