编辑代码

let arr = [2, 5, 1, 8, 19, 3, 32];
console.log('排序前: ', arr)
console.log('排序后: ', bubbleSort(arr));
console.log('排序后: ', selectSort(arr));
console.log('排序后: ', quickSort(arr));

function bubbleSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = i; j < arr.length; j++) {
            if (arr[i] > arr[j]) {
                let tmp = arr[j]
                arr[j] = arr[i]
                arr[i] = tmp
            }
        }
    }
    return arr;
}

function selectSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        let minIdx = i
        for (let j = i; j < arr.length; j++) {
            if (arr[j] < arr[minIdx]) {
                minIdx = j
            }
        }
        [arr[i], arr[minIdx]] = [arr[minIdx], arr[i]]
    }
    return arr;
}

function quickSort(arr) {
    if (arr.length <= 1) {
        return arr;
    }
    let mid = Math.round(arr.length / 2);
    let left = []
    let right = []
    for (let i = 0; i < arr.length; i++) {
        if (i === mid) {
            continue
        }
        if (arr[i] < arr[mid]) {
            left.push(arr[i])
        } else {
            right.push(arr[i])
        }
    }
    return quickSort(left).concat(arr[mid], quickSort(right))
}