# 经典排序算法-05-快速排序

/**
 * 大多数情况下的最优排序算法
 * 基于冒泡排序的升级改进
 * 分而治之的排序思想
 * @param {Array} arr 
 */
function quickSort(arr) {
    if(!arr.length) return []
    if(arr.length === 1) return arr

    var index = Math.floor(arr.length/2)

    var x = arr.splice(index, 1)
    var left = []
    var right = []
    for (let i = 0; i < arr.length; i++) {
        const num = arr[i];
        if(num < x) {
            left.push(num)
        }else{
            right.push(num)
        }
    }
    left = quickSort(left)
    right = quickSort(right)
    return left.concat(x, right)
}

const nums = [3,5,9,7,4,2,10]
const ret = quickSort(nums)
console.log(ret)
Last Updated: 2019-12-2 17:46:54

~扫码关注<码路工人>了吗?~

~关注公众号可以第一时间获取最新文章~

~扫码关注可以联系交流~

WeChatQRCode