class Solution {
public:
int Partition(vector<int> &nums, int left, int right)
{
// 采用子序列的第一个元素为枢纽元素
int pviont = nums[left];
while (left<right)
{
// 从后往前在后半部分中寻找第一个小于枢纽元素的元素
while(nums[right]>pviont)
{
right--;
}
swap(nums[right], nums[left]);
while (nums[left]<pviont)
{
left++;
}
swap(nums[right], nums[left]);
}
return left;
}
void quickSort(vector<int> &nums,int left,int right)
{
if (left<right)
{
int n = Partition(nums, left, right);
quickSort(nums, left, n);
quickSort(nums, n+1, right);
}
}
};
快排
最新推荐文章于 2025-08-19 14:43:05 发布