快速排序
int find(int *a,int low,int high) { int x=a[low]; while(low<high) { while(low<high && a[high]>=x) --high; a[low]=a[high]; while(low<high && a[low]<=x) ++low; a[high]=a[low]; } } void q_sort(int *a,int low,int high) { int pos; if(low <high) //把这个去掉 为什么会出现段错误了,,在主程序q_sort(a,0,9) //这样调用,没low <high 也应该不会错啊,, 去掉low <high //的判断,究竟是哪个地方会出错,, { pos=find(a,low,high); q_sort(a,low,pos-1); q_sort(a,pos+1,high); } }