11.冒泡排序和二维数组

1.冒泡排序

将无序的数组元素排序成有序。

思考:如何将一个数组中的元素进行升序排列?

解析:将数组中的相邻元素两两比较,较大值放在后面,每轮比较完后将最大值排到最后

211932834

如上面这个数组长度为5的数组,分析发现,共需要比较4轮,第一轮比较4次,第二比较比3次,第三轮比较2次,第四轮比较1次。

方法:总结得出,可以使用双重for循环。代码段如下:

         //对一个数组升序排序
		int[] nums = {11,56,78,46,91,23,57,45};

		//外循环控制轮数,元素下标是从0开始的,所以定义循环变量初始值为0
		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]){
					int temp=nums[j];
					nums[j]=nums[j+1];
					nums[j+1]=temp;
				}
			}
		}

		//遍历升序后的数组
		for (int i : nums) {
			System.out.print(i+" ");
		}

2.Arrays类

Arrays类是一种提供操作数组方法的类,如:排序,查询。使用需要导包,import.java.util.Arrays

2.1 使用Arrays类冒泡排序

升序排序方法: Arrays.sort(数组名);

没有返回值

 案例:

2.2 Arrays类的其他操作数组的方法

Arrays.equals(数组名1,数组名2);

比较两个数组是否相同,有返回值,是boolean型

如:boolean result=Arrays.equals(数组名1,数组名2);

Arrays.toString(数组名);

将数组转换成字符串,有返回值,是String型

如:String str=Arrays.toString(数组名);

Arrays.fill(数组名,数据);将数组的所有元素替换为你写的数据,无返回值
Arrays.copyOf(数组名,复制长度);

将数组进行指定长度的复制,有返回值,返回类型由数组的数据类型决定

Arrays.binarySearch(数组名,查找值);在指定的数组中查找你指定的数据,有返回值,如果有,返回这个值的下标,如果没有,返回一个负值,所以是int型

3.二维数组

二维数组:本质上是一个一维数组,其中的每个数组元素都是一个一维数组

3.1 二维数组的声明使用

常见写法1:

数据类型[ ] [ ] 数组名=new 数据类型[数组长度] [数组长度];

或者:数据类型[ ] [ ] 数组名=new 数据类型[数组长度] [ ];

如:int[ ][ ] nums=new int[3][4];

常见写法2:

数据类型[ ] [ ] 数组名=new 数据类型[ ] [ ]{{数据1,数据2,数据n},{数据1,数据2,数据m},{...}};

简写:数据类型[ ] [ ] 数组名={{数据1,数据2,数据n},{数据1,数据2,数据m},{...}};

如:int[ ][ ] nums={{1,2},{1,2,3},{10,20,30}};

3.2 操作二维数组元素

数组名[下标][下标]=数据;

3.3 遍历二维数组

遍历二维数组需要使用双重for循环,外循环变化的是二维数组中的每个元素的下标,内循环变化的是每个元素里的元素下标。

案例:对3个班的各6名同学某门成绩进行各种操作,如:求每个班的总成绩和平均分。

 总结:对于冒泡排序要懂得其原理,平时使用Arrays.sort(数组名)就可以对数组元素排序。对于二维数组要明白其本质就是一个一维数组,二维数组中的每个元素都是一个一维数组。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值