void
re_fastsort(int
a[],
int
left,
int
right)
{
if
(left
>
right)
{
return;
}
int
begin =
left;
int
end =
right;
int
key =
a[left];
while
(begin < end)
{
while
(begin<end&&a[end]>key)
{
end--;
}
if
(begin < end)
{
a[begin]=
a[end];
begin++;
}
while
(begin < end&&a[begin]
< key)
{
begin++;
}
if
(begin < end)
{
a[end]
=
a[begin];
end--;
}
}
a[begin]
= key;
re_fastsort(a,
left, begin - 1);
re_fastsort(a,
begin + 1,
right);
}