int Patition(int *a, int left, int right)
{
int key = right;
int cutoff = left - 1;
for (int i = left; i < right; i++)
{
if (*(a + i) < *(a + right))
{
int tmp = *(a + i);
*(a + i) = a[++cutoff];
a[cutoff] = tmp;
}
}
int tmp = *(a + right);
*(a + right) = a[++cutoff];
a[cutoff] = tmp;
return cutoff;
}
//2.快速排序
void QuickSort(int* a, int left, int right)
{
if (right < left)
return;
int middle = Patition(a, left, right);
QuickSort(a, left, middle - 1);
QuickSort(a, middle + 1, left);
}
快速排序
最新推荐文章于 2020-06-06 18:09:27 发布
本文深入讲解了快速排序算法的核心——分区函数的实现细节。通过分析Patition函数如何将数组分为两部分,使得左边元素小于基准,右边元素大于基准,从而为快速排序奠定基础。文章详细解释了快速排序的递归过程,帮助读者理解算法的工作原理。
摘要由CSDN通过智能技术生成