Java排序算法-Java冒泡排序

冒泡思想:依次比较相邻的两个数据,将小数放前面,大数放后面。

1.流程分析:我们可以将两个位置相邻的元素的比较抽象为arr[j]和arr[j+1]比较,如果arr[j]比arr[j+1]大,就交换两数。以数组[5,9,1,6,7,3]为例:

第一趟排序(外层循环执行一次):[5,9,1,6,7,3]
执行次数是否交换执行结果
第一次排序(内循环一次)5小于9,不交换[5,9,1,6,7,3]
第二次排序(内循环一次)9大于1,交换[5,1,9,6,7,3]
第三次排序(内循环一次)9大于6,交换[5,1,6,9,7,3]
第四次排序(内循环一次)9大于7,交换[5,1,6,7,9,3]
第五次排序(内循环一次)9大于3,交换[5,1,6,7,3,9]
第二趟排序(外层循环执行一次):[5,1,6,7,3,9]
执行次数是否交换执行结果
第一次排序(内循环一次)5大于1,交换[1,5,6,7,3,9]
第二次排序(内循环一次)5小于6,不交换[1,5,6,7,3,9]
第三次排序(内循环一次)6小于7,不交换[1,5,6,7,3,9]
第四次排序(内循环一次)7大于3,交换[1,5,6,3,7,9]
第三趟排序(外层循环执行一次):[1,5,6,3,7,9]
执行次数是否交换执行结果
第一次排序(内循环一次)1小于5,不交换[1,5,6,3,7,9]
第二次排序(内循环一次)5小于6,不交换[1,5,6,3,7,9]
第三次排序(内循环一次)6大于3,交换[1,5,3,6,7,9]
第四趟排序(外层循环执行一次):[1,5,3,6,7,9]
执行次数是否交换执行结果
第一次排序(内循环一次)1小于5,不交换[1,5,3,6,7,9]
第二次排序(内循环一次)5大于3,交换[1,3,5,6,7,9]
第五趟排序(外层循环执行一次):[1,3,5,6,7,9]
执行次数是否交换执行结果
第一次排序(内循环一次)1小于3,不交换[1,3,5,6,7,9]

2.实现代码:

public void bubble(){
  //定义一个数组:
  int[] num = {5,9,1,6,7,3};
  //使用循环:外层循环表示需要排序多少趟,num.length-1=5,保证进行5次排序
  for(int i = 0;i < num.length-1;i++){
     //使用循环,完成每一趟排序中的所有比较,注意:每多比较一趟,则少比较一次
     for(int j = 0;j < num.length-1-i;j++){
        //两个相邻的两个数进行比较:
        if(num[j] > num[j+1]){
             //前面的数比后面的数大,则交换
             int temp = num[j];
             num[j] = num[j+1];
             num[j+1] = temp;
         }
     }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值