void swap(int *x, int *y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
int partition(int a[], int p, int r)
{
int i = p-1;
int j;
for (j = p; j < r; ++j)
{
if ( a[j] < a[r])
{
++i;
swap(a+i, a+j);
}
}
swap(a+i+1, a+r);
return i+1;
}
void quicksort(int a[], int p, int r)
{
if (p >= r)
return;
int q = partition(a, p, r);
quicksort(a, p, q-1);
quicksort(a, q+1, r);
}
快速排序
最新推荐文章于 2023-12-01 23:14:38 发布