美文网首页
JavaScript算法实现 -- 快速排序

JavaScript算法实现 -- 快速排序

作者: 调皮的小卷羊 | 来源:发表于2017-10-12 22:29 被阅读0次

    1.在数据集之中,找一个基准点

    1. 建立两个数组,分别存储左边和右边的数组

    2. 利用递归进行下次比较

           function quickSort(arr) {
                if (arr.length <= 1) {
                    // 如果数组只是一个元素 递归终止
                    return arr
                }
                // 找到数组中间的基准索引
                let pointIndex = ~~arr.length / 2
                // 找到数组中间索引的值
                let pointValue = arr.splice(pointIndex, 1)
                let left = [], right = []
                arr.forEach(item => {
                    // 基准点的左边的数传到左边数组 基准点的右边的数传到右边数组
                    item < pointValue ? left.push(item) : right.push(item)
                })
                //递归不断重复比较 
                return quickSort(left).concat(pointValue, quickSort(right))
            }
    

    相关文章

      网友评论

          本文标题:JavaScript算法实现 -- 快速排序

          本文链接:https://www.haomeiwen.com/subject/incayxtx.html