冒泡排序学习

冒泡排序:

1、第一个和第二个元素依次比较,如果前一个大于后一个则,将两个元素的值交换,后一个元素再与下一个元素进行比较,直到最后一个元素。此时得到的最后一个元素将是数组中最大的元素。最大的元素固定,不在进行比较操作;

2、再从第一个第二个开始依次比较,如果前一个大于后一个则,将两个元素的值交换,后一个元素再与下一个元素进行比较,直到倒数第二个元素。此时得到的倒数第二个元素是数组中第二大的元素,这个元素也固定,不在进行比较操作;

      ...

3、按照上述规则一直操作,直到确定最小元素位为止;得到的结果将是按照从小到大顺序排列的数组;

代码如下:

public class BubbleSort {
    private static int num=0;//循环次数
    
    public static int[] sort(int[] forSort,int length){
        if(length>0){
            for(int i = 0; i<length-1 ; i++ ){
                num++;
                if(forSort[i]>forSort[i+1]){
                    int temp = forSort[i];
                    forSort[i] = forSort[i+1];
                    forSort[i+1] = temp;
                }
            }
            length--;
            System.out.println("分次结果:"+Arrays.toString(forSort) +", length="+ length);
            sort(forSort, length);
        }
        return forSort;
    }
    
    public static void main(String[] args) {
        int[] array = {2,5,6,8,5,4,6,9,4,9};
        array = sort(array, array.length-1);
        System.out.println("最后结果:"+Arrays.toString(array)+",num="+num);

    }
}
执行结果如下:

分次结果:[2, 5, 6, 5, 4, 6, 8, 4, 9, 9], length=8
分次结果:[2, 5, 5, 4, 6, 6, 4, 8, 9, 9], length=7
分次结果:[2, 5, 4, 5, 6, 4, 6, 8, 9, 9], length=6
分次结果:[2, 4, 5, 5, 4, 6, 6, 8, 9, 9], length=5
分次结果:[2, 4, 5, 4, 5, 6, 6, 8, 9, 9], length=4
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=3
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=2
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=1
分次结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9], length=0
最后结果:[2, 4, 4, 5, 5, 6, 6, 8, 9, 9],num=36


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值