快速排序内存超出的问题
#include<stdio.h>
long long a[10001];
void px(int l,int r){
int i,j;
long long tmp;
a[0]=a[(l+r)/2];
i=l,j=r;
if(l>r) return;
while(i<=j){
while(a[j]>=a[0])
j--;
while(a[i]<=a[0] )
i++;
if(i<j){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;j--;
}
}
if(l<j)px(l,j);
if(i<r)px(i,r);
}
int main(){
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
}
px(1,n);
for(i=1;i<=n;i++){
printf("%d ",a[i]);
}
return 0;
}
当我输入以下测试数据时,会超出内存限制
10
548813502 592844616 715189364 844265744 602763370 857945619 544883177 847251737 423654796 623563696
请问问题出在哪了