数组经典例题(JAVA笔记第十三期)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解

求最值

例题如下

public class s {
    public static void main(String[] args) {
        //已知数组元素为{35,5,22,44,55}
        //找出数组中的最大值并打印在控制台
        int [] arr = new int[]{35,5,22,44,55};
        int x = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (x<=arr[i]){
                x = arr[i];
            }
        }
        System.out.println("最大的数为"+x);
            }
        }

如果循环的开始条件为0,那么第一次循环就是自己与自己比较,没有意义,为了提高效率,我们可以把开始条件写为1.

随机数求和、平均值等

import java.util.Random;

public class shuzu7 {
    public static void main(String[] args) {
        //生成10个1~100之间的随机数存入数组。
        //1.打印所有数据,求出所有数据的和
        //2.求出所有数据的平均数
        //3.统计有多少个数据比平均值少
        int [] arr = new int[10];//使用数组动态初始化
        Random num = new Random();
        for (int i = 0; i < arr.length; i++) {
            //循环生成随机数
            int x = num.nextInt(100)+1;
            //将生成的循环数存储到数组中
            arr[i] = x;
        }
        for (int i = 0; i < arr.length; i++) {
            //打印所有数据
            System.out.print(arr[i]+"  ");//效果:将所有数字打印在一行并用空格间隔开
        }

        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            //所有数据求和
            sum = sum +arr[i];
        }
        System.out.println("所有数据的和为"+sum);

            //所有数据的平均数
          double x = sum / (double)arr.length;
        System.out.println("所有数据的平均数为"+x);

        int s = 0;
        for (int i = 0; i < arr.length; i++) {
            //统计有多少个数据比平均值少
            if (arr[i]< x){
                s++;
            }
        }
        System.out.println("有"+s+"个数比平均数小");
    }
}

交换数据

        //定义一个数组存入1,2,3,4,5
        //并且交换0索引和最大索引的数据
   
        int[] arr = new  int[]{1,2,3,4,5};
       //核心:利用第三者变量
        int x =arr[0];
        arr[0] = arr[4];
        arr[4] = x;

因此我们便可以解决下面的问题

public class s {
    public static void main(String[] args) {
        //定义一个数组存入1,2,3,4,5
        //通过交换将数组变成5,4,3,2,1
        //核心:使用第三方变量来实现交换
        int [] arr = new  int[]{1,2,3,4,5};
        for (int i = 0,j = arr.length - 1; i < j; i++,j--){
          //进行数据交换(使用第三方变量)
            int x = arr[i];
            arr[i] = arr[j];
            arr[j] = x;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"  ");
        }
    }
}

以及

import java.util.Random;

public class s {
    public static void main(String[] args) {
        //定义一个数组,存入1-5.
        //要求打乱数组中所有数据的顺序
        //核心:获得随机索引
        int [] arr = new  int[]{1,2,3,4,5};
        Random random = new Random();

        //循环遍历数组,从0开始打打乱数据的顺序
        for (int i = 0; i < arr.length; i++) {
           int x = random.nextInt(arr.length);
           //进行数据交换(使用第三方变量)
            int s = arr[i];
            arr[i] = arr[x];
            arr[x] = s;
        }
        
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"  ");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值