JS 排序

112 阅读1分钟

JS 排序

  1. 冒泡排序
//使用了 [arr[k],arr[k + 1]] = [arr[k + 1],arr[k]]结构赋值,这样就不用中间变量了
function bubblingSort(arr=[]){
    for (let i = 0 ; i < arr.length - 1; i++){
        for (let k = 0 ; k < arr.length - i - 1 ; k++){
            if (arr[k] > arr[k + 1]){
                [arr[k],arr[k + 1]] = [arr[k + 1],arr[k]]
            }
        }
    }
    return arr
}

2.快速排序

//递归 + 不断的分 左、中、右 
function fastSort(arr=[]){
    if (arr.length <= 1){
        return arr
    }

    let midIndex = Math.floor(arr.length / 2)
    let midValue = arr.splice(midIndex,1)[0]

    let left = []
    let right = []

    for (let i = 0 ; i < arr.length ; i++){
        if (arr[i] < midValue){
            left.push(arr[i])
        }else {
            right.push(arr[i])
        }
    }

    return fastSort(left).concat(midValue,fastSort(right))
}