Skip to content

快速排序

js
function fn(nums){
    if(!nums.length || nums.length === 1) return nums
    const first = nums[0]
    const left = [], right = []
    for(let i = 1; i < nums.length; i ++){
        if(nums[i] < first){
            left.push(nums[i])
        }else{
            right.push(nums[i])
        }
    }
    return [...fn(left),first,...fn(right)]
}

console.log(fn([3,2,1,5,7,0]))
console.log(fn([1]))
console.log(fn([1,0]))
console.log(fn([]))
function fn(nums){
    if(!nums.length || nums.length === 1) return nums
    const first = nums[0]
    const left = [], right = []
    for(let i = 1; i < nums.length; i ++){
        if(nums[i] < first){
            left.push(nums[i])
        }else{
            right.push(nums[i])
        }
    }
    return [...fn(left),first,...fn(right)]
}

console.log(fn([3,2,1,5,7,0]))
console.log(fn([1]))
console.log(fn([1,0]))
console.log(fn([]))