数组元素的反转

发布时间:2019-05-25 06:00:02发布者:Mr.Zhang阅读(208)

 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 }

 

运行结果:

反转前的数组:10 50 30 25 70 35 
反转后的数组:35 70 25 30 50 10 

 





本文转自博客园,原文地址:https://www.cnblogs.com/stefaniee/p/10920743.html