用JAVA详解冒泡排序

1.代码段实现:(混的只需要把第一个拿走即可)

public static void main(String[]args){
	 int []arr = new int [] {99,68,97,86,65,94,33,72};
	 System.out.println("排序前的数组为:");
	 for (int i = 0;i < arr.length;++i)
	 {
		 System.out.print(arr[i]+ " ");
	 }
	 System.out.println();
	 for(int i = 0; i < arr.length - 1; ++i)
	 {
		 for (int j = 0;j < arr.length - 1 - i;++j)
		 {
			 if(arr[j]> arr[j + 1])
			 {
				 int temp;
				 temp = arr[j+1];
				 arr[j+1] = arr[j];
				 arr[j] = temp;
			 }
		 }
	 }
	 System.out.println("排序后的数组为:");
	 for (int i = 0; i < arr.length;i++)
	 {
		 System.out.print(arr[i]+ " ");
	 }
  }

2.代码的结果:

 

3.代码的解释:(恭喜你,勤奋的人!)

首先冒泡循环只需要弄懂三个问题:

(1).外层循环控制什么?

           由于在排序到最后时,最后的那一个数据无需排序,由于前面的排序将后面的数据已经按照相应的顺序完成排序:所以要使  arr . length - 1,由于本案例输入8个数据元素,而排序只需要排7次即可 所以从 int i = 0;开始到  i < arr . length - 1 共7次(不信的可以算算:0,1,2,3,4,5,6)

答:控制着要排序的次数

(2).内层循环控制着什么?

            由于冒泡排序的思路是: 比较两个数的大小,将两个中的大的数向后移,然后依次再和下一个数进行比较,较大的数在向后移,而每次都需要将j 从0开始依次的比较一直到  arr . length - 1又由于经过  i 次的排序,后面的数据已经排序完成 则后面的数据无需继续在排序,即为:

          arr . length - 1 - i 

答:控制着每次都是从  int  j = 0的下标开始依次的向后比较排序

(3).交换干什么?

         答:它控制着你想从大到小排序   还是想从小到大的排序

                                    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小捣蛋.

建议你还是留着你的小钱吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值