Java中的数组及冒泡排序

本文深入讲解Java中数组的定义、初始化、遍历、最值获取及排序方法,包括冒泡排序算法实现,并介绍了一维与多维数组的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在程序开发中,数组的应用非常广泛,灵活的使用数组对实际开发非常重要。数组的常见操作有数组的遍历,最值的获取,数组的排序等。

数组的定义

Java不同数据类型元素的默认值

数据类型默认初始值
byte,short,int,long0
float,double0.0
char一个空字符,即’\u0000’
blooeanfalse
引用数据类型null,表示变量不引用任何对象

基本语法结构如下:
数组类型 【】 数组名 = new 数组类型 【数组长度】;
数组类型 【】 数组名 = new 数组类型 {数组元素0,数组元素1,·····};
数组类型 【】 数组名 = {数组元素0,数组元素1,······};

数组的遍历

  在操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数据的遍历。
例如:

public class Example {
	public static void main (String[] args) {
		int[] arr = {1,2,3,4,5};
		//使用for循环遍历数组的元素
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

运行结果如下:

在这里插入图片描述

最值的获取

public class Example {
	public static void main (String[] args) {
		int[] arr = {4,2,5,6,8,9,10};  //定义一个int[] 数组
		//定义变量max用于记住最大值,设第一个元素为最大值
		int max = arr[0];
		//遍历数组,查找最大值
		for(int i = 1;i < arr.length;i++) {
			if(arr[i] > max) {
				max = arr[i];
			}
		}
		System.out.println("数组中最大值为" + max);	
	}
}

定义了一个临时变量max,用于记住数组的最大值。首先假设数组中第一个元素arr[0]为最大值,然后使用for循环对数组进行遍历,在遍历的过程中只要遇到此max值还大的元素,就将该元素赋值给max。
运行结果如下:
在这里插入图片描述

数组排序

冒泡排序:不断的比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升原理相似。
第一步
  从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮比较。
第二步
  除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中第二大的数放在倒数第二个位置。
第三步
  依次类推,持续对越来越来少的元素重复上面的步骤,直到没有任何一对元素比较为止
例如:

public class Example {
	public static void main (String[] args) {
		int[] arr = {4,2,5,6,8,9,10};  //定义一个int[] 数组
		//事先将数组打印出来
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();  //用于换行
		
		//开始冒泡排序
		for (int i = 1; i < arr.length; i++) {
			for (int j = 0; j < arr.length - i; j++) {
				if(arr[j] > arr[j+1]) {
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		//打印排序后的数组
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
	}
}

运行结果如下
在这里插入图片描述

多维数组

以二维数组为例:

基本语法格式

第一种方式:
int [][] arr = new int [3][4];

通过一个图来表示这种情况

int arr [] []
arr [0]
arr [1]
arr [3]
arr [0] [0]
arr [0] [1]
arr [0] [2]
arr [0] [3]
arr [1] [0]
arr [1] [1]
arr [1] [2]
arr [1] [3]
arr [2] [0]
arr [2] [1]
arr [2] [2]
arr [1] [3]
第二种方式:
int [][] arr = new int [2][];

第二种方式与第一种方式类似,只是数组中每个元素的长度不确定。

int arr [] []
arr [0]
arr [1]
arr [3]
arr [0] [0]
arr [1] [0]
arr [1] [1]
arr [2] [0]
arr [2] [1]
arr [2] [2]
第三种方式:
int [][] arr = {{1,2},{3,4,5,6},{7,8,9}};

此二维数组定义了三个元素,这三个元素都是数组,分别为{1,2}、{3,4,5,6}、{7,8,9},通过如下图表示:

int arr [] []
arr [0]
arr [1]
arr [3]
1
2
3
4
5
6
7
8
9

应用

public class Example {
	public static void main (String[] args) {
		int[][] arr = new int[3][];
		arr[0] = new int[] {11,12};
		arr[1] = new int[] {21,22,23};
		arr[2] = new int[] {31,32,33,34};
		int sum = 0;				//定义变量记录总销售额
		for(int i = 0;i < arr.length; i++) { //遍历数组元素
			int groupSum = 0;		//定义变量记录小组销售额
			for(int j = 0; j < arr[i].length; j++) {
				groupSum += arr[i][j];
			}
			sum += groupSum;
			System.out.println("第" + (i+1) + "小组销售额为:" 
								+ groupSum + "万元" );
		}
		System.out.println("总销售额为:" + sum + "万元");
	}
}

运行结果:
在这里插入图片描述
  定义了两个变量sumhe groupSum,其中sum用来记录公司的总销售额,groupSum用来记录每个销售小组的销售额。通过嵌套循环for统计销售额时,外层循环对三个销售小组进行遍历,内层循环对每个小组员工的销售额进行遍历。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值