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
);
}