快排

            input = quicksort1(input.slice())
            return input.slice(0, k)
        }
        function quicksort1(nums) {
            quicksort2(nums, 0, nums.length - 1)
            return nums
        }
        function quicksort2(nums, left, right) {
            if (left < right) {
                const ll = left--;
                const rr = right++;
                let mid = Math.floor((ll+rr)/2)
                let cpm = nums[mid]
                
                while (left < right) {
                    do{
                        left++
                    }while(nums[left] < cpm)
                    do{
                        right--
                    }while(nums[right] > cpm)
                    if(left<right){
                       [nums[left],nums[right]]=[nums[right],nums[left]]
                    }
                }
                quicksort2(nums, ll, right)
                quicksort2(nums, right+1, rr)

            }
        }
module.exports = {
    GetLeastNumbers_Solution : GetLeastNumbers_Solution
};
全部评论

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务