java冒泡排序

排序 从小到大进行排序

例如:int[] arr = {1,27,3,5,38,23,67}=>{1,3,5,23,27,38,67}

比较相邻的两个元素,如果第一个元素比第二个元素大,就交换一下位置即可,每一对相邻的元素,都要做同样的工作,从开始的第一对到结尾最后一对,最后的元素应该是最大的。

import java.util.Arrays;

/**
 * 冒泡排序
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = new int[]{1,5,3,4};
        for (int i = 0; i < arr.length - 1; i++) {//循环的次数
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    //交换位置
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println("从小到大进行排序:" + Arrays.toString(arr));
    }
}

分析:
           i = 0    0< 3
                 进入到第二层for循环
                *       j = 0  0 < 3 arr[0]  >  arr[1]  false  不用交换位置     j++
                *       j = 1  1 < 3 arr[1]  >  arr[2]  true   交换位置             j++
                *       j = 2  2 < 3 arr[2]  >  arr[3]  true   交换位置             j++
                *       j = 3  3 < 3 false    内层循环结束     i++
            i = 1  1 < 3
                 进入到第二层的for循环
                *      j = 0 0 < 2  arr[0] > arr[1]    false               j++
                *      j = 1 1 < 2  arr[1] > arr[2]    false               j++
                *      j = 2 2 < 2  false   内层for循环结束    i++
              i=2    2 < 3
                  进入到第二层的for循环
                *       j = 0 0 < 1  arr[0] > arr[1]   false       j++
                *       j = 1 1 < 1 false     内层for循环结束    i++
               i=3    3<3    false    循环结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值