冒泡排序

冒泡排序原理:

两两比较,左边大,就互相交换。

有n个数需要排序就要比较(n-1)轮,每一轮会确定一个最大值,保存到数组末尾。

	public static void main(String[] args) {
		//用户输入10个0~100之间的数并保存到数组中
		Scanner scan = new Scanner(System.in);
		int[] bubbles = new int[10];
		System.out.println("请输入10个0~100之间的整数,每个数之间用空格隔开:");
		for(int i=0;i<bubbles.length;i++){
			bubbles[i] = scan.nextInt();
		}
		scan.close();
		System.out.println("你输入的数组为:  "+Arrays.toString(bubbles));
		//冒泡排序
		System.out.println("----------冒泡排序开始------------");
		for(int i=0;i<bubbles.length-1;i++){
			/*
			 * i表示总的轮次
			 * 有n个数需要排序就要比较(n-1)轮
			 * 每一轮会确定一个最大值
			 * 每确定一个值,下一轮比较中,比较次数j的值就会减少1
			 */
			for(int j=0;j<bubbles.length-1-i;j++){ //j表示每个轮次比较的次数
				if(bubbles[j]>bubbles[j+1]){
					int max = bubbles[j+1];
					bubbles[j+1] = bubbles[j];
					bubbles[j] = max;
				}
			}
			System.out.println("第"+(i+1)+"轮排序结果为: "+Arrays.toString(bubbles));
		}
		System.out.println("----------冒泡排序结束------------");
		System.out.println("排序后的数组为: "+Arrays.toString(bubbles));
		
		
		/**
		 * JDk提供的数组快速排序算法:sort()方法---升序排序并保存
		 * 程序性能优越
		 */		
		//系统随机产生10个0~100的随机整数,保存到数组ksort中
		int[] ksort = new int[10];
		Random r = new Random();
		for(int i=0;i<ksort.length;i++){
			ksort[i] = r.nextInt(100)+1;
		}
		System.out.println("ksort= "+Arrays.toString(ksort));
		Arrays.sort(ksort);
		System.out.println("快速排序之后的数组为: "+Arrays.toString(ksort));
		
	}

数组工具类Arrays中常用方法

Arrays.toString(数组名)---字符串形式输出数组

Arrays.copyOf(数组名,length)---复制数组(可以改变数组长度,length表示指定数组长度,如果是增加长度就用元素默认值填充)并返回新数组。

System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数据中的起始位置,要复制的数组元素的数量)---复制数组

Arrays.fill(数组名,val)---用一个值初始化数组,val表示值




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值