* 需求:给定一个数组,要求将数组中的最小值和最大值进行交换;
* 例如: 处理前: [10,4,1,2,6,5,8,3]
* 处理后: [1, 4, 10, 2, 6, 5, 8, 3]
*/
class day05{
public static void main(String[] args){
int[]arr = {10,4,1,2,6,5,8,3};
/*int temp = arr[getMaxindex(arr)];
arr[getMaxindex(arr)]= arr[getMinindex(arr)];
arr[getMinindex(arr)] = temp;
以上表示方法为什么不能交换
*/
int a = getMaxindex(arr);
int b = getMinindex(arr);
int temp = arr[a];
arr[a]= arr[b];
arr[b] = temp; //这样可以交换
print(arr);
}
public static int getMaxindex(int[]arr){
int max = arr[0];
int index1 = 0;
for (int x = 1;x < arr.length ;x++ ){
if (max < arr[x]){
max = arr[x];
index1 = x;
}
}
return index1;
}
public static int getMinindex(int[]arr){
int min = arr[0];
int index2 = 0;
for (int y = 1;y < arr.length ;y++ ){
if (min > arr[y]){
min = arr[y];
index2 = y;
}
}
return index2;
}
public static void print(int[] arr){
for (int i = 0;i < arr.length ;i++ ){
System.out.print(arr[i]+" ");
}
}
} |
|