算法之冒泡排序

为什么叫冒泡排序?

因为每次比较都会比较出最大的一个,就像碳酸饮料一样浮出最大的一个,所以叫冒泡排序

通过实验可以得出几个结论

1.一共有几个元素参与比较(6个)
2.一个比较了几轮(5轮)
3.每一轮是怎么比较的(相邻元素进行比较,顺序不对就互换位置–顺序是前一个跟后一个进行比较)
4.每轮比较的结果(每轮都会确定一定最大的元素)
5.有哪些相邻元素可以不参与比较(之前轮确认的最大值)

我们怎么实现冒泡排序?

我们可以通过for循环嵌套来实现
外层循环控制的是比较的轮数
内层循环控制的每轮比较的次数
在比较过程中,如果顺序不对就互换位置

实现思路循环嵌套

外层循环:控制的是比较的轮数,如果是n个数据,最多需要比较n-1轮
内层循环:控制在每轮循环中的相邻比较+交换位置

package sort;

import java.util.Arrays;

/**
 * 该类用来完成冒泡排序
 */
public class JavaSort {
    public static void main(String[] args) {
        //创建一个无序数组
       /*
        数组的创建
        动态创建:int[] a = new int[5]
        静态创建:1.int[] a= new int[]{1,2,3,4}
                 2.int[] a ={1,2,3,4,5}

        */
        int[] a ={27,96,73,25,21};
        //调用method里的方法完成排序
        int[] newA = method(a);


    }

    private static int[] method(int[] a) {
        //1.外层循环控制的是轮数,假设有n个数,最多比较n-1次
        //开始值:1 结束值:<a.length-1; 变化:++
        for (int i=1;i<a.length-1;i++){
            //内层循环控制的是比较+互换位置
            for (int j=0;j<a.length-i;j++){
                if(a[j]>a[j+1]){
                  //交换数据
                  int t =a[j];
                  a[j]=a[j+1];
                  a[j+1]=t;
                }
            }
            System.out.println("第"+i+"轮的结果"+ Arrays.toString(a));
        }
        return a;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值