編程題目:
33.輸入數組,最大的與第一個元素交換, 最小的與最後一個元素交換,輸出數組。
示例代碼:
package program.calculation.exercise33;
/**
* 33.輸入數組,最大的與第一個元素交換, 最小的與最後一個元素交換,輸出數組。
*/
public class ElementSwap {
public static void main(String[] args) {
int[] arr = {1,3,5,7,9,2,4,6,8};
System.out.println("數組元素交換前順序:");
printArr(arr);
swapElement(arr);
System.out.println("\n數組元素交換後順序:");
printArr(arr);
}
//交換數組元素
private static void swapElement(int[] arr) {
int[] tempArr = new int[arr.length];
//將數組arr複製到數組tempArr
for(int i=0;i<arr.length;i++){
tempArr[i] = arr[i];
}
bubbleSoprt(tempArr);
for(int i=0;i<arr.length;i++){
if(arr[i] == tempArr[tempArr.length-1]){
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
}
if(arr[i] == tempArr[0]){
int temp = arr[arr.length-1];
arr[arr.length-1] = arr[i];
arr[i] = temp;
}
}
}
//冒泡排序,找出最大值和最小值
private static void bubbleSoprt(int[] arr) {
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//遍歷數組
private static void printArr(int[] arr) {
for(int n : arr){
System.out.print(n+" ");
}
}
}