void quickSort(unsigned *d, int l, int r) {
int L = l;
int R = r;
int mid = d[(l + r) / 2];
while(L<R){
while (d[L] < mid)L++;
while (d[R] > mid)R--;
int t=d[L];
d[L]=d[R];
d[R]=t;
L++;
R--;
}
if (l < R)quickSort(d, l, R);
if (r > L)quickSort(d, L, r);
}
void sort(unsigned *a, int n) {
quickSort(a,0,n-1);
}