代码
void
quicksort(
int
u,
int
v)
{
int i, m;
if (u >= v) return ;
swap(u, randint(u, v));
m = u;
for (i = u + 1 ; i <= v; ++ i)
if (x[i] < x[u])
swap( ++ m, i);
swap(u, m);
quicksort(u, m - 1 );
quicksort(m + 1 , v);
}
{
int i, m;
if (u >= v) return ;
swap(u, randint(u, v));
m = u;
for (i = u + 1 ; i <= v; ++ i)
if (x[i] < x[u])
swap( ++ m, i);
swap(u, m);
quicksort(u, m - 1 );
quicksort(m + 1 , v);
}