java冒泡排序

参与比较的数据:2,6,4,3,8,5,1

第一次循环:

2 6 4 3 8 5 1(2与6比较,不交换)

2 4 6 3 8 5 1(6与4比较,交换)

2 4 3 6 8 5 1 (6与3比较,交换)

2 4 3 6 8 5 1(6与8比较,不交换)

2 4 3 6 5 8 1 (8与5比较,交换)

2 4 3 6 5 1 8(8与1比较,交换)

第一次循环过程

由此可以看出每次循环都是找到本次所需循环的最大值放在数组尾部

第二次循环

第二次循环过程

第三次循环

第三次循环过程

第四次循环过程

第五次循环过程

第六次循环过程

至多循环n-1次,n是要排序数的个数

具体代码如下

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {2,6,4,3,8,5,1};
//        i用来控制循环次数,冒泡排序的外层循环i
//        写成下面的方法可以减少内层循环的次数
       /* 否则是这样
       * for (int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-1;j++){
       * */
        for (int i=arr.length-1;i>0;i--){
            for(int j=0;j<i;j++){
                if(arr[j]>arr[j+1]){
                    int temp= arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        for(int i =0;i<arr.length;i++)
        System.out.println(arr[i]);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值