思路分析
先创建一个新的数组arr2,大小为arr.length
逆序遍历arr ,将每个元素拷贝到arr2(顺序拷贝)
建议增加一个循环变量j =》0=》5;
流程图如下:
文字描述
输出数组int[] a ={11,22,33,44,55,66};
再定义一个新的空间int[] b = new int[a.length];定义一个int 类型number = a.length-1(下标),定义一个新的变量j (新的空间的下标),判断number >= 0,为真把a[number]赋值给b[j];为假退出循环,把b赋给a,定义一个int 初值值为0,判断i 是否小于a.length为真输出数组元素,i++为假结束
代码展示
System.out.println("=======老师的方法=========如下");
int[] a ={11,22,33,44,55,66};
int[] b = new int[a.length];
for(int number = a.length-1,j= 0;number>=0; number--,j++){
b[j]= a[number];
}
a = b;
System.out.println("=======arr2的数组元素如下");
for(int i = 0; i< a.length; i++){
System.out.print(a[i] + "\t");
}
思路分析2
找规律
1 a[0]->a[5](进行交换)=>{66,22,33,44,55,11}
2 a[1]->a[4](进行交换)=>{66,55,33,44,22,11}
3 a[2]->a[3](进行交换)=>{66,55,44,33,22,11}
规律共交换三次=》 arr.length/2
每次交换时对应的下标是 arr[i] 和 arr[arr.length-1 - i]
流程图如下
文字描述
数组int[] arr ={11,22,33,44,55,66};
定义一个int类型 i初始值为0,判断 i 是否小于数组的长度为真把arr.length-1 - i赋值给temp
再把arr[i]赋值给arr[arr.length-1-i]
然后再把temp赋值给arr[i];
最后输出arr【i】
代码展示
System.out.println("\n" + "=======老师的方法2=========如下");
int[] arr ={11,22,33,44,55,66};
for(int i = 0; i<arr.length/2; i++){
int temp = arr[arr.length-1-i];//给temp赋值arr元素的末位
arr[arr.length-1-i] = arr[i];
arr[i] = temp;
}System.out.println("=======arr2的数组元素如下");
for(int i = 0; i< arr.length; i++){
System.out.print(arr[i] + "\t");
}