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')