思想是灵魂,这里我有两种思路。
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]
如果您有更好的思路不防分享出来,共同进步。