4月1日学习

37 阅读1分钟

4.1 今天巩固一下快排算法

const quickSort = (arr)=>{
   if(arr.length < 1){
    return arr
   }
   const leftArr = []
   const rightArr = []
   //1、首先取出数组的中值
   const middleNum = arr.splice(Math.floor(arr.length / 2),1)
   //2、将小于中值的数值排到中值左侧反之右侧
   for(let i = 0;i<arr.length;i++){
   if(arr[i]<middleNum){
      leftArr.push(arr[i])
   }else{
      rightArr.push(arr[i])
   }
   }
   const result = quickSort(leftArr).concat(middleNum).concat(quickSort(rightArr))
   
   return result

}
const arr = [1,2,4,1,5,6,7,32,1,3,23,12,56,98,34]
quickSort(arr)