五、数组、排序和查找

news2024/9/20 22:35:10

文章目录

  • 一、数组
    • 1.1 数组介绍
    • 1.2 数组的使用
    • 1.3 数组使用注意事项和细节
    • 1.4 数组赋值机制
    • 1.5 数组反转
    • 1.6 数组添加
  • 二、排序
    • 2.1 排序的介绍
    • 2.2 冒泡排序
  • 三、查找
  • 四、多维数组
    • 4.1 二维数组的使用
    • 4.2 二维数组的应用案例
    • 4.3 二维数组使用细节和注意事项
    • 4.4 课堂练习
  • 细节知识
    • 数组赋值机制

一、数组

1.1 数组介绍

  • 数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型
public class Test{
    public static void main(String[] args){
        /**
         *  double[] 表示是double类型的数组,数组名 hens
         *  我们可以通过 hens[下标] 来访问数组的元素
         *  下标是从 0 开始编号的比如第一个元素就是 hens[0]
         */
        double[] hens = {3,4,1,3.4,2,50};
        // 可以通过 数组名.length 得到数组的大小/长度
        for (int i = 0;i<hens.length ; i++) {
            System.out.println("第"+(i+1)+"个元素的值="+hens[i]);
        }
    }
}

1.2 数组的使用

在这里插入图片描述

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        double[] array = new double[5];
        Scanner scanner = new Scanner(System.in);
        double score;
        for(int i = 0;i < array.length;i++){
             System.out.println("请输入第"+(i+1)+"个人的成绩:");
             score = scanner.nextDouble();
             array[i] = score;
        }

        for(int i = 0;i < array.length;i++){
             System.out.println("" + array[i]);
        }
    }
}

在这里插入图片描述

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        double[] array;
        array = new double[5];
        Scanner scanner = new Scanner(System.in);
        double score;
        for(int i = 0;i < array.length;i++){
             System.out.println("请输入第"+(i+1)+"个人的成绩:");
             score = scanner.nextDouble();
             array[i] = score;
        }

        for(int i = 0;i < array.length;i++){
             System.out.println("" + array[i]);
        }
    }
}

在这里插入图片描述

1.3 数组使用注意事项和细节

在这里插入图片描述

1.4 数组赋值机制

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.5 数组反转

在这里插入图片描述

public class Test{
    public static void main(String[] args){
        int arr[] = {11,22,33,44,55,66,77};
        int temp;
        for(int i = 0;i < arr.length;i++){
            if(i>=arr.length-1-i){
                break;
            }
            temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
        for(int i = 0;i < arr.length;i++){
            System.out.println(""+arr[i]);
        }
    }
}

1.6 数组添加

在这里插入图片描述

在这里插入图片描述

二、排序

2.1 排序的介绍

在这里插入图片描述

2.2 冒泡排序

在这里插入图片描述

在这里插入图片描述

public class Test{
    public static void main(String[] args){
        int[] nums = {24,69,80,57,13};
        int temp;
        for(int i = 0;i<nums.length-1;i++){
            for(int j = 0;j<nums.length-1-i;j++){
                if(nums[j] > nums[j+1]){
                    temp = nums[j+1];
                    nums[j+1] = nums[j];
                    nums[j] = temp;
                }
            }
        }

        for(int i = 0;i<nums.length;i++){
            System.out.println(""+nums[i]);
        }
    }
}

三、查找

在这里插入图片描述

四、多维数组

在这里插入图片描述

4.1 二维数组的使用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

public class Test{
    public static void main(String[] args){
        int[][] arr = new int[10][]; // 创建 二维数组, 一共有10个子一维数组,
        // 但是每个一维数组还没有初始化
    }
}

在这里插入图片描述

4.2 二维数组的应用案例

在这里插入图片描述

public class Test{
    public static void main(String[] args){
        int raw = 10;
        int[][] nums = new int[raw][];
        for(int i = 0;i < nums.length;i++){
            nums[i] = new int[i+1]; // 为每个一维数组创建子一维数组对象
            
            if(i==0){ // 首行指定为1
                nums[0][0] = 1;
                continue;
            }

            for(int j = 0;j <= i;j++){
                if(j==0 || j==i){ // 边界为1
                    nums[i][j] = 1;
                    continue;
                }
                nums[i][j] = nums[i-1][j] + nums[i-1][j-1];
            }
        }


        // 打印二维数组
        for(int j = 0; j < nums.length; j++){
            for(int k = 0;k < nums[j].length; k++){
                System.out.print(nums[j][k]+" ");
            }
            System.out.print("\n");
        }
    }
}

4.3 二维数组使用细节和注意事项

在这里插入图片描述

4.4 课堂练习

在这里插入图片描述

细节知识

数组赋值机制

在这里插入图片描述

在这里插入图片描述

注:值传递引用传递

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

车企重新审视「自研」

一直以来&#xff0c;“全栈自研”成了车企布局智能化赛道的关键词&#xff0c;尤其是「软件定义汽车」被视为行业游戏规则的改变者。然而&#xff0c;在很多供应商看来&#xff0c;“运营一个高效的内部软件开发团队&#xff0c;极具挑战性。” 至少到目前为止&#xff0c;软件…

PHP多商户跨店统一消费券系统程序源码

&#x1f389;【购物新风尚】多商户跨店统一消费券系统&#xff0c;省钱新体验来袭&#xff01;&#x1f4b0; &#x1f6cd;️ 开篇&#xff1a;告别单一&#xff0c;拥抱多元优惠 还在为错过心仪店铺的优惠券而懊恼吗&#xff1f;&#x1f614; 告别那份遗憾&#xff0c;多…

SpringBoot配置动态数据源

1. 数据源准备 1.1 创建配置文件 application.yaml spring:datasource:master:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 123456jdbc-url: jdbc:mysql://localhost:3306/master?useUnicodetrue&characterEncodingutf-8&useSSLfalse&…

安灯系统为照明工厂打造智能化解决方案

在当今快速发展的制造业领域&#xff0c;智能化转型已成为众多企业提升竞争力的关键。对于照明工厂而言&#xff0c;如何提高生产效率、降低成本、确保产品质量&#xff0c;成为了亟待解决的问题。而安灯系统的出现&#xff0c;为照明工厂提供了一种智能化的解决方案。 一、照明…

GPT-SovitsV2,支持多语种,多音字优化,更好的音色,ZeroShot(WIN/MAC)

语音克隆项目GPT-Sovits发布了V2版本&#xff0c;在早些时候做了V1版本的整合包&#xff0c;但是那个版本的整合包操作比较麻烦&#xff0c;上手难度高。正好趁着V2&#xff0c;一起更新了。 【GPT-SovitsV2,支持多语种,多音字优化,更好的音色,ZeroShot&#xff08;WIN/MAC&…

计算机毕业设计推荐-基于python的个性化旅游路线推荐平台

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于python的个性化旅游路线…

解决 RT-Thread bsp stm32l476-st-nucleo STM32L4 HAL库缺失问题

问题描述 当前最新的 RT-Thread 版本&#xff1a;5.2.0&#xff0c;发现在 编译 BSP stm32l476-st-nucleo&#xff0c;缺少了 STM32L4xx_HAL 驱动库&#xff0c;造成生成的 工程&#xff0c;如 Keil MDK5 工程无法编译通过 初步的【临时】解决方法是 回退 RT-Thread 的版本&am…

攻防世界 倒车-x64Elf-100

前言&#xff1a;学习笔记。 下载解压 查壳。 64ida 打开。 跟进跳转。 判断&#xff0c;常规就是&#xff0c;左边 1 a1[i]就是flag的值 挺简单的&#xff0c;直接用C语言&#xff0c;照抄就行。 脚本&#xff1a; Code_Talkers

治经济学(Political Economy)是经济学科的总名称

政治经济学&#xff0c;作为一门学科&#xff0c;具有深厚的历史背景和广泛的研究领域。 以下是对政治经济学的详细阐述&#xff1a; 一、定义与起源 政治经济学&#xff08;Political Economy&#xff09;是经济学科的总名称&#xff0c;广义地说&#xff0c;是研究一个社会…

STM32标准库HAL库——MPU6050原理和代码

目录 陀螺仪相关基础知识&#xff1a; 加速度计&#xff0c;陀螺仪的工作原理&#xff1a; 陀螺仪再智能车中的应用&#xff1a; MPU6050原理图和封装图&#xff1a; 硬件IIC和软件IIC的区别&#xff1a; 相同点 不同点 常规获取陀螺仪数据&#xff1a; 标准库&#x…

Vue学习--- vue3 集成遇到的部分问题与解决

构建异常 1. 问题&#xff1a;ESLint: Do not access Object.prototype method hasOwnProperty from target o 报错解释&#xff1a; ESLint 报错信息 "Do not access Object.prototype method hasOwnProperty from target object" 指的是不应该从目标对象访问 Ob…

9个最流行的文本转语音引擎【TTS 2024】

在快速发展的技术世界中&#xff0c;文本转语音 (TTS) 引擎正在取得显著进步。从增强各种应用程序中的用户体验到创建逼真且引起情感共鸣的语音输出&#xff0c;TTS 引擎正变得不可或缺。在这里&#xff0c;我们介绍了 2024 年为行业树立新标准的九款最佳 TTS 引擎。 NSDT工具推…

传统网络编程有什么问题

文章目录 多线程版网络编程客户端MyServerThread服务端 线程池版的网络编程客户端MyServerThread服务端 总结 传统网络通信中的开发方式及问题 多线程版网络编程 下面先写一个多线程版网络编程的版本代码: 客户端 public static void main(String[] args) throws IOExceptio…

【推荐100个unity插件之27】推荐5种办法实现unity人物布料系统 衣服裙子飘动 头发飘动 胸部抖动 骨骼模拟 配件摆动 尾巴摆动

最终效果 文章目录 最终效果前言模型获取一、animation rigging 和 cloth布料模拟二、Unity-Chan!Model三、Dynamic Bone四、Magica Cloth 1五、Magica Cloth 21、介绍2、下载3、官方文档4、安装插件5、使用Animation Rigging插件可视化骨骼6、Magica Cloth介绍7、BoneCloth的使…

【采集软件】根据关键词批量采集小红薯,含笔记正文、笔记链接、发布时间、转评赞藏等

一、背景介绍 1.1 爬取目标 熟悉我的小伙伴都了解&#xff0c;我之前开发过2款软件&#xff1a; 【采集软件】用Python开发的小红薯搜索采集工具&#xff0c;支持多关键词同时&#xff01; 【采集软件】用Python开发的小红薯详情批量采集工具&#xff0c;含笔记正文、转评赞藏…

linux系统使用 docker 来部署运行 mysql8 并配置 docker-compose-mysql.yml 文件

Docker是一个开源的容器化平台&#xff0c;旨在简化应用程序的创建、部署和管理。它基于OS-level虚拟化技术&#xff0c;通过将应用程序和其依赖项打包到一个称为容器的标准化单元中&#xff0c;使得应用程序可以在任何环境中快速、可靠地运行。 Docker的优势有以下几个方面&a…

【网格dp】力扣1594. 矩阵的最大非负积

给你一个大小为 m x n 的矩阵 grid 。最初&#xff0c;你位于左上角 (0, 0) &#xff0c;每一步&#xff0c;你可以在矩阵中 向右 或 向下 移动。 在从左上角 (0, 0) 开始到右下角 (m - 1, n - 1) 结束的所有路径中&#xff0c;找出具有 最大非负积 的路径。路径的积是沿路径访…

Java 入门指南:异常处理的实践规范

在 Java 中处理异常并不是一个简单的事情。需要花费很多时间来思考如何处理异常&#xff0c;包括需要处理哪些异常&#xff0c;怎样处理等等。 抛出或捕获异常的时候&#xff0c;有很多不同的情况需要考虑&#xff0c;而且大部分事情都是为了改善代码的可读性或者 API 的可用性…

捏蛋糕修牛蹄类型的解压视频素材去哪里找?

今天我们聊聊在哪里能找到制作捏蛋糕、修牛蹄等解压视频的素材。这类视频看起来心情就变好&#xff0c;特别解压。如果你也有兴趣制作这种视频&#xff0c;以下是一些优质的素材网站推荐&#xff0c;助你轻松找到所需素材。 蛙学网 开始我们的推荐列表是蛙学网。这是一个综合性…

npm国内源设置

一、背景 在国内使用npm时&#xff0c;由于网络问题&#xff0c;经常会遇到速度慢或无法访问的问题。为了提高效率&#xff0c;可以将npm的源设置为国内的镜像源。以下是一些常用的国内npm镜像源以及如何设置它们的方法。 二、国内可用源 2.1 淘宝npm源 https://registry.np…