快速排序的一种C语言实现
int partition(int *p, int left, int right)
{
int position = left;
while (left < right)
{
if (p[left] <= p[position])
{
left++;
continue;
}
if (p[right] >= p[position])
{
right--;
continue;
}
swap(p + left, p + right);
}
if (p[position] < p[left])
{
left = left - 1;
}
swap(p + position, p + left);
return left;
}
void quick_sort(int *p, int n)
{
if (n <= 1)
return;
int middle = partition(p, 0,n-1);
quick_sort(p, middle);
quick_sort(p + middle + 1, n - middle - 1);
}