java 冒泡排序算法(使用循环)

代码如下

package BubbleSort;
/*
        冒泡排序其实就是讲数组中的数据左右进行比较,比如一个数组int a ={8,9,10,7,6,0,11}
        第一个数和第二个数进行比较,如果左边的数大于右边的数就交换位置
        然后第二个数和第三个数进行比较,如果左边的数大于右边的数就交换位置
        第三个和第四个数进行比较,如果左边的数大于右边的数就交换位置

        这个原理就是冒泡排序,每次都拿出最大的一个数,放在最右边,就能把数组通过从小到大的方式排序。


第1次循环:
        8 9 10 7 6 o 11(第1次比较:交换)
        8 9 10 7 6 o 1〈第2次比较:不交换)
        8 9 710 6 o 11 (第3次比较:交换)
        8 9 7 6 10 0 11 (第4次比较:交换)
        8 9 7 6 o 10 11 (第5次比较:交换)
        8 9 7 6 o 10 11 (第6次比较:不交换)最终管出的最大数据在右动:11
        参与比较的数据:8 9 7 6 0 10第2次循坏:
        8 9 7 6 o 1o (第1次比较:不交换)
        87 9 6 o 1o (第2次比较:交换)
        8 76 9 o 1o (第3次比较:交换)
        876 o 9 1o (第4次比较:交换)
        8 76 o 9 1o (第5次比较:不交换)
        参与比较的数据:8 7 6 o 9
        第3次循环:
        7 8 6 o 9 (第1次比较:交换)
        7 6 8 o 9 (第2次比较:交换)
        7 6 o 8 9 (第3次比较:交换)
        76 o 8 9 (第4次比较:不交换)
        参与比较的数据:7 6 o 8
        第4次循环:
        6 7 o 8 (第1次比较:交换)
        6 o 7 8(第2次比较:交换)
        6 o 7 8 (第3次比较:不交换)
        参与比较的薮据:6 o 7第5次循环:
        0 6 7(第1次比较:交换)
        0 6 7(第2次比较:不交换)参与比较的数据: o 6
        第6次循坏:
        o 6(第1次比较:不交换)*/



public class BubbleSort01 {
    public static void main(String[] args) {
        //创建数组
        int[] ars = new int[]{8,9,10,7,6,0,11};
        //开始循环
        for (int i = ars.length-1; i >0 ; i--) {
            //这里的循环表示循环的次数等于数组的长度-1,循环的次数为7
            for (int j = 0; j < i; j++) {
                //这里循环的次数随着i--而递减,第二次循环排出倒数第一个元素
                //倒数第三次循环排出倒数第二个元素
                if (ars[j] > ars[j+1]){
                    int temp;
                    temp = ars[j];//整个盒子装一下变量
                    ars[j] = ars[j+1];
                    ars[j+1]= temp;
                }

            }
        }
        //遍历数组
        for (int i = 0; i < ars.length; i++) {
            System.out.println(ars[i]);
        }

    }
}

结果如下
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值