快速排序
- C/C++ code
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); } }[解决办法]
去掉这个if后
你这程序就无限递归下去了
另外 find 方法咋没有返回呢