交换排序----冒泡排序

本文详细介绍了冒泡排序的基本思想及实现方法,通过遍历数组并两两比较的方式,逐步将最大值放置于数组末尾,直至整个数组有序。

冒泡,一个泡泡从水里冒出来,就是个从小到大的过程,所以冒泡排序也是个从小到大的排序

基本思想是

将最大的数找出来放在末位

如果要在一个数组中找最大值,我们一般都会遍历这个数组,然后两两比较,将现在的最大值记录下来,再用现在的最大值和下一个数值比较,最后找到最大值。

冒泡排序是在这个过程上的累加,第一趟找出最大值,放在最后一位,第二趟找出剩下最大值放在倒数第二位,第三趟......直到无交换或n-1趟完成

//手打代码,有可能缺胳膊断腿
public static void bubbleSort(int[] table) {
    boolean exchange = true;
 //有交换再进行下一趟,无交换说明后面的顺序都是正确的,最多进行n-1趟交换
    for (int i = 1; i < table.length && exchange; i++) {
        exchange = false; // 假定元素未交换
        for (int j = 0; j < table.length - i; j ++) {  //一趟的比较交换
            if (table[j] > table[j +1]) { // 反序时,交换
                int temp = table[j];
                table[j] = table[j+1];
                table[j + 1] = temp;
                exchange = true;     //记录交换
            }
        }
    }
} 

 

function bubbleSort(table) {
    let exchange = true;
    for (let i = 1; i < table.length && exchange; i++) {
        exchange = false; // 假定元素未交换
        for (let j = 0; j < table.length - i; j ++) {  //一趟的比较交换
            if (table[j] > table[j +1]) { // 反序时,交换
                let temp = table[j];
                table[j] = table[j+1];
                table[j + 1] = temp;
                exchange = true;     //记录交换
            }
        }
    }
    return table;
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值