数组元素的反转
原文链接 https://www.cnblogs.com/stefaniee/p/10920743.html

 1 package com.demo;
 2
 3 /*
 4  * 数组元素的反转(不使用新数组)
 5  * 实现数组元素的反转,就是把数组中对称位置的元素调换
 6  */
 7
 8 public class ArrayReverse {
 9     public static void main(String[] args) {
10         // 定义一个数组
11         int[] arr = new int[] { 10, 50, 30, 25, 70, 35 };
12
13         // 遍历原数组
14         System.out.print("反转前的数组:");
15         for (int i = 0; i < arr.length; i++) {
16             System.out.print(arr[i] + " ");
17         }
18         System.out.println();
19
20         // 交换对称位置的元素
21         /*
22          * 实现原理:
23          * 定义两个变量来存储索引值
24          *   int first = 0; // 0号索引值
25          *   int last = arr.length - 1; // 最大索引值
26          *
27          * 1.拿数组中0号索引位置的元素和最大索引位置的元素交换
28          * 2.拿数组中1号索引位置的元素和第二大索引位置的元素交换
29          * 其实就是对称位置的元素进行交换
30          * ......
31          * 以此类推,当  first>=last 的时候,停止交换
32          * 换句话说,交换的条件为:first<last
33          */
34         // 方式一
35         for (int first = 0, last = arr.length - 1; first < last; first++, last--) {
36             int temp = arr[first];
37             arr[first] = arr[last];
38             arr[last] = temp;
39         }
40
41         // 方式二
42 //        for (int i = 0; i < arr.length / 2; i++) {
43 //            int temp = arr[i];
44 //            arr[i] = arr[arr.length - i - 1];
45 //            arr[arr.length - i - 1] = temp;
46 //        }
47
48         // 遍历反转后的数组
49         System.out.print("反转后的数组:");
50         for (int i = 0; i < arr.length; i++) {
51             System.out.print(arr[i] + " ");
52         }
53         System.out.println();
54     }
55 }
01-02 21:52