快排

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

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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