java基础(冒泡排序)精简

1.java冒泡排序

冒泡排序法是一种简单的排序算法,它重复地访问排序的数组,一次比较两个元素,如果俩个元素大小顺序错误就把他们交换。数组的工作是重复地进行,一直到数组已经排序完成。java 冒泡排序属于冒泡排序的一种。

首先创建一个数组

int[] arr = { 3, 9, -1, 10, -2 };

然后定义内外层循环,外层循环控制循环此数,内层循环控制每次循环过程中俩俩交换每个元素

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];     //定义一个用于交换的int型变量
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}

冒泡排序动图如下:

 

 冒泡循环过程如下

第一轮排序(i=1)排序轮数=元素个数-1,j的数字<arr.length-i=5-1=4

arr[j=0]与arr[j=1]比较,变成【3,-1,9,-2,10】(从arr[0]开始依次往后俩俩比较)

arr[1]与arr[2]比较,变成【3,-1,-2,9,10】从arr[1]开始依次往后俩俩比较)

arr[2]与arr[3]比较,变成【3,-1,-2,9,10】从arr[2]开始依次往后俩俩比较)

arr[3]与arr[4]比较,变成【3,-1,-2,9,10】从arr[3]开始依次往后俩俩比较)

第一轮循环把最大的10,循环置换在最后一位

第一轮排序后结果为【3,-1,-2,9,10】

第二轮排序(i=2)j的数字<arr.length-i=5-2=3

arr[0]与arr[1]比较,变成【-1,3,-2,9,10】(从arr[0]开始依次往后俩俩比较)

arr[1]与arr[2]比较,变成【-1,-2,3,9,10】从arr[1]开始依次往后俩俩比较)

arr[2]与arr[3]比较,变成【-1,-2,3,9,10】从arr[2]开始依次往后俩俩比较)

第二轮循环把第二大的9,循环置换在倒数第二位

第二轮排序后结果为【-1,-2,3,9,10】

第三轮排序(i=3)j的数字<arr.length-i=5-3=2

arr[0]与arr[1]比较,变成【-2,-1,3,9,10】(从arr[0]开始依次往后俩俩比较)

arr[1]与arr[2]比较,变成【-2,-1,3,9,10】从arr[1]开始依次往后俩俩比较)

第三轮循环把第三大的3,循环置换在倒数第三位

第三轮排序后结果为【-2,-1,3,9,10】

第四轮排序(i=4)j的数字<arr.length-i=5-4=1

arr[0]与arr[1]比较,变成【-2,-1,3,9,10】(从arr[0]开始依次往后俩俩比较)

第四轮循环把第四大的-1,循环置换在第二位

第四轮排序后结果为【-2,-1,3,9,10】

最后输出排序结果如下:

        System.out.println("排序后结果为:");

		System.out.print("{");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.print("}");

		/*第一轮排序后结果为{3,-1,-2,9,10}
		第二轮排序后结果为{-1,-2,3,9,10}
		第三轮排序后结果为{-2,-1,3,9,10}
		第四轮排序后结果为{-2,-1,3,9,10}*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值