快速排序的思路与逻辑图解
    image.png

    1. const arr = [4,1,5,6,2,3,9,7,1]
    2. function quickSorrt(arr){
    3. if(arr == null || arr.length == 0 ) return []; // 递归出口
    4. let letArr = []; // 比比较值小的存进此数组
    5. let rightArr = []; // 比比对值大的存进此数组
    6. let leader = arr[0]; // 默认的比较值
    7. for(let i = 1 ; i < arr.length ; i++){
    8. if(arr[i] < leader) letArr.push(arr[i]) // 进行比较
    9. else rightArr.push(arr[i])
    10. }
    11. letArr = quickSorrt(letArr) //递归
    12. rightArr = quickSorrt(rightArr)// 递归
    13. letArr.push(leader) // 将比较值添加进数组 默认比较值是不会对自己进行比较的
    14. return letArr.concat(rightArr) // 将 比比较值小的数组 + 比较值 + 比比较值大的数组
    15. }
    16. console.log(quickSorrt(arr))