编辑代码

/*
*冒泡排序:从左到右不断交换相邻逆序的元素,在一轮的循环之后,可以让未排序的最大元素上浮到右侧。
*在一轮循环中,如果没有发生交换,那么说明数组已经是有序的,此时可以直接退出。
*
*/
function swap(arr, i, j) {
    let t = arr[i];
    arr[i] = arr[j];
    arr[j] = t;
}
function bubble(arr) {
    let len = arr.length;
    let sorted = false;
    for (let i = len - 1; i > 0 && !sorted; i--) {
        sorted = true;
        for (let j = 0; j < i; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(arr, j, j + 1);
                sorted = false;
            }
        }
    }
}
let arr = [2, 4, 1, 3]
bubble(arr)
console.log(arr)