栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数组冒泡排序+Scanner动态给数组赋值+扩容

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组冒泡排序+Scanner动态给数组赋值+扩容

一、数组的冒泡排序

(一)降序冒泡
冒泡排序即为相邻两个数比较。如果前一个数比后一个数小,那么将这两个数的位置互换。

1、第一个数与第二个数比较,如果第一个数比第二个数小,那么将第一个数与第二个数互换位置。
2、然后让第二个数与第三个数比较,如果第二个数比第三个数小的话,那么将其互换。
3、重复执行前一个数与后一个数互换,一轮循环结束,可以保证最后一个数一定是数组中最小的值。
4、重复以上步骤,第二轮比较过后,可以保证倒数第二个数一定是数组中倒数第二小的数。
5、重复执行【数组的长度-1】次即可得到一个降序排列的数组。

import java.util.Arrays;


public class BubbleSortMethod {
	public static void main(String[] args) {
		// 1、定义数组并赋值
		int[] arr1 = new int[] {78,25,63,98,120,66};
		// 2、外层循环用来控制比较次数
		for (int i = 0; i < arr1.length; i++) {
			// 3、内层循环用来比较相邻的元素并交换
			for (int j = 0; j < arr1.length - 1; j++) {
				if (arr1[j] < arr1[j+1]) {
					int temp = arr1[j];
					arr1[j] = arr1[j+1];
					arr1[j+1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(arr1));
		
	}

}

升序只需要将判断条件改为大于即可

二、Scanner给数组动态赋值+扩容
import java.util.Arrays;
import java.util.Scanner;


public class DilatancyArrays2 {
	public static void main(String[] args) {
		// 1、定义键盘扫描器
		Scanner key = new Scanner(System.in);
		// 2、创建数组并初始化
		int[] arr1 = new int[10];
		// 3、判断添加数字是否超过10个,若超过则对其进行扩容
		System.out.println("请输入您要输入的数字个数:");
		int num = key.nextInt();
		// 如果用户要输入的数小于10,则正常遍历赋值即可
		if (num <= arr1.length) {
			for (int i = 0; i < num; i++) {
				System.out.println("请输入您要输入的数字");
				int arrNum = key.nextInt();
				arr1[i] = arrNum;
			}
			
		}else { // 否则先将值赋给新数组,然后再将数组通过Arrays.copyOf方法赋值给旧的数组
			int[] newArr = new int[num];
			for (int i = 0; i < num; i++) {
				System.out.println("请输入您要输入的数字");
				int arrNum = key.nextInt();
				newArr[i] = arrNum;
			}
			 // 将数组的元素复制给arr1,并说明新数组的长度
			arr1 = Arrays.copyOf(newArr, num);
		}
		// Arrays封装的输出数组的方法
		System.out.println("数组的值为:"+Arrays.toString(arr1)); 
		
	}
}

这里使用的扩容方式是:通过Arrays.copyOf(参数1,参数2)方法。参数1写的是要复制的参数,参数2写的是新数组的长度如果参数2小于原先的数组的长度即为缩容,大于即为缩容。

还有一种方式是:

int[] arr1 = new int[10];
int[] arr2 = new int[arr1.length*2];
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号