首页 > 其他分享 >数组元素逆序

数组元素逆序

时间:2024-07-30 20:19:17浏览次数:13  
标签:arr int 元素 System length 数组 out 逆序

/*
    数组元素逆序 (就是把元素对调)

    涉及数组元素交换的逻辑的时候,可以定义一个中间变量,作用是临时将值存储一下
 */
public class ArrayTest3 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        System.out.println("逆序前:");
        printIntArray(arr);
//        //第一个元素与最后一个元素交换
//        int tmp1 = arr[0];
//        arr[0] = arr[arr.length - 1 - 0];
//        arr[arr.length - 1 - 0] = tmp1;
//
//        //第二个元素与倒数第二个元素交换
//        int tmp2 = arr[1];
//        arr[1] = arr[arr.length - 1 - 1];
//        arr[arr.length - 1 - 1] = tmp2;
//
//        //第三个元素与倒数第三个元素交换
//        int tmp3 = arr[2];
//        arr[2] = arr[arr.length - 1 - 2];
//        arr[arr.length - 1 - 2] = tmp3;
//        System.out.println("逆序后:");
//        printIntArray(arr);
        //小结论:交换的次数 = 数组的长度 / 2
        //使用for循环改进
        //i: 交换的次数
//        for (int i = 0; i < arr.length / 2; i++) {
//            int tmp = arr[i];
//            arr[i] = arr[arr.length - 1 - i];
//            arr[arr.length - 1 - i] = tmp;
//        }
        int[] resArr1 = niXu1(arr);
        System.out.println("逆序后:");
        printIntArray(resArr1);


        //实现逆序的方式2:
        int[] resArr2 = niXu2(arr);
        System.out.println("逆序后:");
        printIntArray(resArr2);


    }

    /*
        将逆序2的功能封装成一个方法: 定义指针的方式
     */
    public static int[] niXu2(int[] arr) {
        for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
            int tmp = arr[start];
            arr[start] = arr[end];
            arr[end] = tmp;
        }
        return arr;
    }

    /*
        将逆序1的功能封装成一个方法
     */
    public static int[] niXu1(int[] arr) {
        for (int i = 0; i < arr.length / 2; i++) {
            int tmp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = tmp;
        }
        return arr;
    }

    /*
        将输出int类型的数组功能封装成一个方法
     */
    public static void printIntArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            if (i == 0) {
                System.out.print("[" + array[i] + ", ");
            } else if (i == array.length - 1) {
                System.out.print(array[i] + "]");
            } else {
                System.out.print(array[i] + ", ");
            }
        }
        //换行
        System.out.println();
    }
}

 

标签:arr,int,元素,System,length,数组,out,逆序
From: https://www.cnblogs.com/k8409/p/18333273

相关文章

  • 找出数组中最大和最小值
    找出数组中最大和最小值/*数组获取最值(获取数组中的最大值最小值)*/publicclassArrayTest2{publicstaticvoidmain(String[]args){int[]arr={123,451,45,12,556,12,412};//1、默认将第一个元素作为最大值以及最小值int......
  • (nice!!!)LeetCode 2952. 需要添加的硬币的最小数量(贪心、数组)
    题目:2952.需要添加的硬币的最小数量思路:假设区间[1,s-1]的数都可组合得到,当遍历到x=coins[i]时,1、当x<=s时,可以组合的数就是区间[1,s-1]和区间[x,s-1+x]的交集,即区间[1,s-1+x]2、当x>s时,区间[1,s-1]和区间[x,s-1+x]没有交集,那我就只能通过添加一个数来实现了。在这里......
  • 一维数组
    创建数组一维数组的创建和初始化:声明数组:javaint[]myIntArray;//声明一个整数类型的数组分配内存空间(初始化数组):javamyIntArray=newint[5];//分配一个可以存储5个整数的数组分配数组元素:javamyIntArray[0]=10;myIntArray[1]=20;myIntArray[2]=3......
  • 数组概念
    数组数组(Array)是一种基本的数据结构,用于存储固定数量的元素,这些元素通常是相同类型的。数组提供了一种方式来访问和操作集合数据。以下是数组的一些基本概念:固定大小:一旦声明,数组的大小就不能改变。例如,如果你声明一个包含10个整数的数组,你就不能将其扩展到10个以上的元素。......
  • 数组的算法
    冒泡法冒泡排序(BubbleSort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的......
  • 多维度数组
    多维度数组多维度数组(MultidimensionalArrays)在Java中可以视为数组的数组,最常见的是二维数组,但Java也支持更多维度的数组。多维度数组在内存中并不是连续存储的,它们是按行或按列连续的,这取决于数组的布局方式。声明多维度数组:javaint[][]twoDimArray;//声明一个二维数组i......
  • 算法:请找出数组a所有重复元素和比较数组a和数组b得到不重复的新数组和比较数组a和数组
    /***1.给定数组int[]a,int[]b*(1)请找出数组a所有重复元素,例:int[]a={1,2,3,4,8,9,3,5,1,3},结果int[]a1={1,1,3,3,3}*(2)比较数组a和数组b得到不重复的新数组,例:int[]a={1,2,3,4,8,9,3,5,1,3},int[]b={2,7,6,0,5},结果int[]c={1,2,3,4,5,6,......
  • Android开发 - ArrayList类动态数组与ArrayList<Fragment>解析
    什么是ArrayListArrayList是Java编程语言中的一个类,它实现了动态数组的数据结构。简单来说,ArrayList允许我们创建一个可以动态增长或缩减的数组,这在处理需要频繁添加或删除元素的情况下非常有用主要特点和用途动态大小:ArrayList的大小可以根据需要动态增长或缩减,与普通的数......
  • 利用结构体数组 实现学生信息管理系统(模块化编程)
    核心功能(必须实现):                        新增信息查询信息修改信息删除信息 信息排序扩展功能:                        按字符串索引, 插入信息 提升功能:                        账号注......
  • 使用C99 变长数组和和零长数组特性封装协议回复消息
    背景:主从机交互协议中,需要针对不同控制字封装回复消息接口。本文使用变长数组特性和零长数组特性对这类接口进行统一封装。 1#pragmapack(1)2typedefstruct{3uint8_tmagic;4uint8_tlen_H;5uint8_tlen_L;6uint8_tcmd;7uint8_t......