ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

快速排序板子

2026/8/19 1:26:00 拓冰建站 浏览量
快速排序板子

好多年了,竟然没忘,蓝书上的,之后数据结构书又改一了版

    void quick_sort(vector<int>& nums, const int& k, int x, int y) {if (x >= y) return;int p = x, q = y;int stash = nums[x];while(p < q) {while(p < q && nums[q] >= stash) q--;while(p < q && nums[p] <= stash) p++;if (p < q) {swap(nums[p], nums[q]);}}swap(nums[x], nums[q]);quick_sort(nums, k, x, p - 1);quick_sort(nums, k, p + 1, y);}

快排找第k大

class Solution {
public:void quick_sort(vector<int>& nums, const int& k, int x, int y) {if (x >= y) return;int p = x, q = y;int stash = nums[x];while(p < q) {while(p < q && nums[q] >= stash) q--;while(p < q && nums[p] <= stash) p++;if (p < q) {swap(nums[p], nums[q]);}}swap(nums[x], nums[q]);if (p == nums.size() - k) {return;}else if (p > nums.size() - k) {quick_sort(nums, k, x, p - 1);} else {quick_sort(nums, k, p + 1, y);}}int findKthLargest(vector<int>& nums, int k) {quick_sort(nums, k, 0, nums.size() - 1);return nums[nums.size() - k];}
};