int mid=a[(l+r)>>1];
int i=l,j=r;
while(i<=j)
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i<=j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
i++,j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);
int mid=((l+r)>>1);
int i=l,j=r;
while(i<=j)
{
while(a[i]<a[mid]) i++;
while(a[j]>a[mid]) j--;
if(i<=j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
i++,j--;
}
}
if(l<j) qsort(l,j);
if(i<r) qsort(i,r);