JAVA排序算法之冒泡排序

冒泡排序

原理:
比较两个相邻的元素,将值大德元素交换至右端
思路:
核心排序思想:相邻两个数进行比较 交换位置
依次比较相邻的两个数,将小数放在前,大数放在后面.
即在第一趟:首先比较第1个和第二个数,倘若第二个数小于第一个数,则交换这两个数,如果第一个数小于第二个数,则不交换,
继续比较第二个数和第三个数,如此继续,直到比较最后两个数,不断重复上述步骤,直到全部排序完成
举例说明
 *int[] array = new int[]{3,2,5,1};
 * 
 *3 2 5 1
 *第一趟 比较完毕 确定了一个最大值放在了最后面
 * 第一次 2 3 5 1
 * 第二次 2 3 5 1
 * 第三次 2 3 1 5
 * 
 * length-1-0
 * 
 * 第二趟 比较完毕 确定了一个最大值
 * 第一次 2 3 1 5
 * 第二次 2 1 3 5
 * 
 * length-1-1
 * 
 * 第三趟
 * 第一次 1 2 3 5
 * 
 * length-1-2
代码实现

//冒泡排序  大的数沉下去,小的数浮上来
public static void main(String[] args) {
    int[] array = {2,1,5,7,3,9,4};
    //把双重循环结构打出来
    //注意 内循环减一 防止数组越界
    //外循环-1代表5个数 比较四趟 比较数组长度减一趟
    //内循环-i 每一趟都少比一次
    //内循环相当于 一趟比多少次
    for(int i = 0; i < array.length -  1; i++) {
       for(int j = 0; j < array.length - 1 - i; j++) {
        // 相邻 两个数 比较 交换
            if(array[j] > array[j + 1]) {
                int temp = array[j + 1];
                array[j + 1] = array[j];
                array[j] = temp;
            }
      }
    }
       //   打印数组
    System.out.println(Arrays.toString(array));
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值