zoukankan      html  css  js  c++  java
  • Java之数组的反转

    数组反转

    • 要求:把数组的元素内容反转。
      ArrayReverse.java
    arr {11,22,33,44,55,66} {66, 55,44,33,22,11}
    

    方式 1:通过找规律反转

    • 【思路分析】
    • 规律
      1. 把 arr[0]arr[5] 进行交换 {66,22,33,44,55,11}
      2. 把 arr[1]arr[4] 进行交换 {66,55,33,44,22,11}
      3. 把 arr[2]arr[3] 进行交换 {66,55,44,33,22,11}
      4. 一共要交换 3 次 = arr.length / 2
      5. 每次交换时,对应的下标 是 arr[i] 和 arr[arr.length - 1 -i]
    	  int temp = 0;
          int len = arr.length; //计算数组的长度
          for( int i = 0; i < len / 2; i++) {
              temp = arr[len - 1 - i];//保存
              arr[len - 1 - i] = arr[i];
              arr[i] = temp;
          }
    
          System.out.println("===翻转后数组===");
          for(int i = 0; i < arr.length; i++) {
              System.out.print(arr[i] + "\t");//66,55,44,33,22,11
          }
    

    方式 2:使用逆序赋值方式
    ArrayReverse02.java

    • 思路
      1. 先创建一个新的数组 arr2 ,大小 arr.length
      2. 逆序遍历 arr ,将 每个元素拷贝到 arr2的元素中(顺序拷贝)
      3. 建议增加一个循环变量 j -> 0 -> 5
    	 int[] arr2 = new int[arr.length];
          //逆序遍历 arr
          for(int i = arr.length - 1, j = 0; i >= 0; i--, j++) {
              arr2[j] = arr[i];
          }
          //4. 当for循环结束,arr2就是一个逆序的数组 {66, 55, 44,33, 22, 11}
          //5. 让 arr 指向 arr2数据空间, 此时 arr原来的数据空间就没有变量引用
          // 会被当做垃圾,销毁
          arr = arr2;
          System.out.println("====arr的元素情况=====");
          //6. 输出 arr 看看
          for(int i = 0; i < arr.length; i++) {
              System.out.print(arr[i] + "\t");
            }
    

    在这里插入图片描述

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254657.html

  • 相关阅读:
    git基本操作及设置
    5-13 多页面打包配置
    笔记待整理
    单例模式在多线程下的多种实现模式
    面试题小练习1106
    求两个字符串的最大共有子串
    单例模式
    静态初始化一个二维数组并将二维数组排序并输出
    java中数组的基本知识
    关于break语句如何结束多重循环的嵌套
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254657.html
Copyright © 2011-2022 走看看