思想是靈魂,這裏我有兩種思路。
1,互換位置:第一個元素與最後一個互換,第二個與倒數第二個,依次替換(定義兩個變量i,j相互替換)
2,新建數組,從原數組倒序取數據存放到新數組
public class ReverseSort {
/**
* int[] arr = {45,67,20,51,78,83,64,40,40,32};
* 1,互換位置:第一個元素與最後一個互換,第二個與倒數第二個,依次替換(定義兩個變量i,j相互替換)
* 2,新建數組,從原數組倒序取數據存放到新數組
*/
/**
* @description:新建數組,從原數組倒序取數據存放到親數組
*/
public int[] reverse(int[] arr) {
//初始化數組並定義長度
int[] arrResult = new int[arr.length];
int j = 0;//新數組的下標
//通過循環替換數據
for (int i=arr.length-1;i>=0; i--,j++) {
arrResult[j] = arr[i];
}
return arrResult;
}
/**
* @description:定義i,j相互替換
*/
public int[] reverseTwo(int[] arr) {
int i=0;
int j = arr.length-1;
int temp;
while (i<j) {
//替換
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
return arr;
}
@Test
public void testReverse() {
int[] arr = {45,67,20,51,78,83,64,40,40,32,33};
int[] reverse = reverseTwo(arr);
System.out.println(Arrays.toString(reverse));
}
}
結果:
[33, 32, 40, 40, 64, 83, 78, 51, 20, 67, 45]
如果您有更好的思路不防分享出來,共同進步。