数组翻转

案列

要求:把数组的元素内容进行反转;
arr{11,22,33,44,55,66} ->{66,55,44,33,22,11}

 1 public class arryReverse{
 2     public static void main(String[] args){
 3         /*
 4           要求:把数组的元素内容进行反转;
 5           arr{11,22,33,44,55,66}  ->{66,55,44,33,22,11}
 6           思路分析:
 7           方式1:通过找规律反转
 8           把a[0]对应的11与a[5]对应的66进行互换{66,22,33,44,55,11}
 9           把a[1]对应的22与a[4]对应的55进行互换{66,55,33,44,22,11}
10           把a[2]对应的33与a[3]对应的44进行互换{66,55,44,33,22,11}
11             一共要交换3次,既3=arr.length/2         
12          a[5]=arr.length-1-0;
13          a[4]=arr.length-1-1
14 
15  */
16          int [] arr = {11,22,33,44,55,66};
17           int tmep=0;
18           //交换的次数
19           for (int i =0;i<arr.length/2 ;i++ ) {
20               //类型要互换两个杯子里面的水,需要借助第三个杯子;
21                tmep = arr[arr.length-1-i];
22                arr[arr.length-1-i] = arr[i];
23                arr[i] = tmep;
24 
25            } 
26            System.out.println("转换后的数组");
27           for (int i = 0;i<arr.length ;i++ ) {
28               
29            System.out.print(arr[i]+"\t");
30           }
31 
32           //方式2:使用逆序赋值方式
33           /*1.定义一个新的数组arrys2,长度为arr.length;
34             2.逆序遍历arr,将每个元素拷贝到arrys2元素中,  
35             3.增加循环变量,j   0到5          
36           */
37 
38             System.out.println("=================================");
39              int [] arr1 = {11,22,33,44,55,66};
40         int [] arry2 = new int [arr1.length];//定义一个新的数组名称
41         //逆序遍历
42         for (int i = arr1.length-1, j = 0; i >= 0 ;i--,j++ ) {
43             arry2[j] = arr1[i];
44         }
45         //当for循环结束后,arrys2就是一个逆序的数组{66,55,44,33,22,11}
46          //让arr指向arrys2数据空间,此时arr原来的数据空间就没有变量引用,会被当做垃圾处理
47           arr1 = arry2;
48          System.out.println("arr1逆序后的元素情况分布");
49          //输出arry1逆序后的分布情况;
50           for (int i =0;i<arr1.length ;i++ ) {
51               System.out.print(arr1[i]+"\t");
52           }
53 
54     }
55 }

 

上一篇:基于注意力机制优化的生成式文档摘要模型


下一篇:计数器练习11