快排

            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
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-20 12:46
瘦嘟嘟右卫门:百度文库网盘的暑期也没约面吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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