SOURCE

console 命令行工具 X clear

                    
>
console
function swap(list,a,b){
let temp=list[a]
list[a]=list[b]
list[b]=temp
}

function pupple(numberList){
    let len=numberList.length;
    for(let i=0;i<len-1;i++){
        for(let j=0;j<len-i;j++){
            if(numberList[j]>numberList[j+1]){
                swap(numberList,j+1,j)
            }
        }
    }
    return numberList
}

function selection(numbers){
    let len=numbers.length;
    for(let i=0;i<len-1;i++){
        let min=i
        for(let j=i;j<len;j++){
            if(numbers[min]>numbers[j]){
                min=j
            }
        }
        if(min!==i) swap(numbers,min,i)
    }
    return numbers
}

function insert(numbers){
    let len=numbers.length
    for(let i=1;i<len;i++){
        let j=i-1;
        while(j>=0){
            if(numbers[j]>numbers[i]){
                swap(numbers,j,i)
                i--
                j--
            }else{
                break
            }
           
        }
    }
    return numbers
}

function quick(numbers){

    function sort(start,end){
        if(start>=end) return
        let i=start,j=end
        let base=numbers[i]
        while(i<j){
            while(i<j&&numbers[j]>=base){
                j--
            }
            if(i<j){
                numbers[i]=numbers[j]
            }
            while(i<j&&numbers[i]<base){
                i++
            }
            if(i<j){
                numbers[j]=numbers[i]
            }
        }
        numbers[i]=base
        sort(start,i-1)
        sort(i+1,end)
    }
    sort(0,numbers.length-1)
    return numbers
}
function reduceSort(numbers){
    return numbers.reduce((list,item)=>{
        let index=list.findIndex(o=>o>item)
        if(index==-1) list.push(item)
        else list.splice(index,0,item)
        return list
    },[])
}
console.time()
quick([3,2,1,5,3,11,8,2,4,5,3,1,1,1,100,200,55,2])
console.timeEnd()
console.log('22')