• 07 数组的反序


    数组的反序

    准备工作

    public class InvertedSequence {
        public static void main(String[] args) {
            //inverted sequence是反序的意思
            int[] a={2,77,-4,6,11};
            System.out.println("原数组如下所示:");
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i]+"	");
            }
            System.out.println();//换行
        }
    }
    
    

    A.数组的反序输出

    1.思路分析:

    ​ 思路:把数组从最后一个位置开始遍历输出即可

    2.核心代码

     System.out.println("数组的反序输出(以奇数个数据为例)如下所示:");
            for (int i = a.length-1; i >=0; i--) {
                 //注意:数组的最后一个位置为数组长度-1,因为数组的下标是从0开始的
                System.out.print(a[i]+"	");
            }
    

    3.运行截图

    B.原数组变成反序后的数组

    1.思路分析:

    //分析:第一次拿第一个与最后一个交换,第二次拿第二个与倒数第二个交换
    // 依次类推下去,即第i个元素与第a.length-1-i个元素互换
    // 原数组就可以反序了,
    // 那交换次数又怎么得到呢?
    // 当数组长度为3时,交换次数很显然为1次,当数组长度为4时,交换次数为2
    // 当数组长度为1时,交换次数很显然为0次;
    // 当数组长度为5时,交换次数很显然为2次,当数组长度为6时,交换次数为3
    // 由上面可以推出:无论数组长度是奇数还是偶数,它的交换的次数都是数组长度/2
    // 注意:整形数据进行/运算会自动舍弃小数
    //思路为:设置一个循环,初始为0,循环次数为数组长度/2,
    // 循环体里面的内容是进行第i个元素与第a.length-1-i的互换

    2.核心代码:

      for (int i = 0; i < a.length/2; i++) {
               int temp=a[i];//temp定义在里面的好处是生命周期短一些,然后能及时被gc机制处理
               a[i]=a[a.length-1-i];
               a[a.length-1-i]=temp;
            }
            System.out.println("反序后的数组(以奇数个数据为例)如下所示:");
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i]+"	");
            }
    

    3.运行截图

  • 相关阅读:
    spring boot 整合elasticsearch
    elasticsearch 高级查询
    elasticsearch 基本操作
    day9--回顾
    day9--多线程与多进程
    day9--paramiko模块
    day10--异步IO数据库队列缓存
    数据库连接池
    数据库事务的四大特性以及事务的隔离级别
    使用JDBC进行数据库的事务操作(2)
  • 原文地址:https://www.cnblogs.com/SSSzhanglingzhi/p/14034670.html
Copyright © 2020-2023  润新知