每日学习-Java基础(八)数组3(数组排序)

一、选择排序

    // 1-选择排序  ASC升序 从小到大
	// 第一位与后面所有的比较,比第一位小则将它放在第一位  第一位即最小的
	// 第二位与后面所有的比较,比第二位小则将它放在第二位 
	// 以此类推,直至排序完成
	// 也可DESC降序 从大到小
	
	int[] a = {10,15,33,9,22,18,90,3,7};
	System.out.println("选择排序-排序前:");
	for(int i=0; i<a.length;i++)
		System.out.print(a[i] + " ");
	System.out.println();
	
	// 选择排序
	int temp = 0;
	for(int i=0; i<a.length;i++){
		for(int j=i+1;j<a.length;j++){ // 后一位开始比较
			if(a[i]>a[j]){ // 如果后面的小,交换
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}	
		}
	}
	
	System.out.println("选择排序-排序后:");
	for(int i=0; i<a.length;i++)
		System.out.print(a[i] + " ");
	System.out.println();

运行结果:
在这里插入图片描述
二、冒泡排序

    // 2-冒泡排序
	// 将相邻的2个数依次比较,较大的放在后面,最后的即为最大的
	// 继续进行比较,交换,排除最后1位  ----每次比较后,后面的都是大的数,并可以减少1位进行比较
	// 以此类推,直至排序完成
	// 也可从大到小降序
	
	int[] b = {23,19,7,15,35,10,44,76,1};
	System.out.println("冒泡排序-排序前:");
	for(int i=0; i<b.length;i++)
		System.out.print(b[i] + " ");
	System.out.println();
	
	// 冒泡排序
	int t = 0;
	for(int i=0;i<b.length;i++){
		for(int j=0;j<b.length-1-i;j++){ // 注意比较条件 防止数组越界
			if(b[j]>b[j+1]){  // 相邻2位进行比较
				t = b[j];
				b[j] = b[j+1];
				b[j+1] = t;
			}
		}
	}
	
	System.out.println("冒泡排序-排序后:");
	for(int i=0; i<b.length;i++)
		System.out.print(b[i] + " ");
	System.out.println();

运行结果:
在这里插入图片描述
三、练习

    // 3-练习
	int[] ArrayT = new int[5];
	// 3-1 随机数数组
	System.out.println("生成随机数数组如下:");
	for(int i=0; i<ArrayT.length; i++){
		ArrayT[i] = (int) (Math.random()*100);
		System.out.print(ArrayT[i] + " ");
	}
	System.out.println();
	
	// 3-2 选择排序 从小到大 正排序
	int x = 0;
	for(int i=0; i<ArrayT.length; i++){
		for(int j=i+1; j<ArrayT.length; j++){
			if(ArrayT[i] > ArrayT[j]){ // 从小到大
				x = ArrayT[i];
				ArrayT[i] = ArrayT[j];
				ArrayT[j] = x;
			}
		}
	}
	System.out.println("随机数组-选择排序-排序后:");
	for(int i=0; i<ArrayT.length;i++)
		System.out.print(ArrayT[i] + " ");
	System.out.println();
	
	// 3-3 冒泡排序 从大到小 倒排序
	int m = 0;
	for(int i=0; i<ArrayT.length; i++){
		for(int j=0; j<ArrayT.length-1-i; j++){
			if(ArrayT[j] < ArrayT[j+1]){ // 从大到小
				m = ArrayT[j];
				ArrayT[j] = ArrayT[j+1];
				ArrayT[j+1] = m;
			}
		}
	}
	System.out.println("随机数组-冒泡排序-排序后:");
	for(int i=0; i<ArrayT.length;i++)
		System.out.print(ArrayT[i] + " ");
	System.out.println();

运行结果:
在这里插入图片描述
我的学习源泉:https://how2j.cn/k/array/array-sort/282.html?p=114999

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值