js排序

85 阅读1分钟

快排

     function quickSort(arr, left, right){
       left = left ? left : 0
       right = right ? right : arr.length - 1
       if(left < right){
          let pivotindex = pivot(arr, left, right)
          quickSort(arr, left, pivotindex-1)
          quickSort(arr, pivotindex+1, right)
       }
       return arr


       function pivot(arr, left, right){
         let index = left + 1
         for(let i = index; i <= right; i++){
           if(arr[i] < arr[left]){
            swap(arr, i, index)
             index++
           }
         }
         swap(arr, left, index - 1)
         console.log(arr)
         return index-1
       }
       function swap(arr, left, right){// 交换,用了es6的数组交换总是报错
         let flag = arr[left]
         arr[left] = arr[right]
         arr[right] = flag
       }
     }
      let arr = [1,1,1]
      console.log(quickSort(arr))