{
if (i != j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
int Partion(int a[], int begin, int end)
{
int i = begin - 1;
int j = end + 1;
int value = a[begin];
while (1)
{
do {
i++;
} while(a[i] < value);
do {
j--;
} while(a[j] > value);
if (i < j)
{
Exchange(a, i, j);
}
else
{
return j;
}
}
}
void Qsort(int a[], int begin, int end)
{
if (begin < end)
{
int j = Partion(a, begin, end);
Qsort(a, begin, j);
Qsort(a, j + 1, end);
}
}