首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

快速排序,该怎么处理

2012-02-09 
快速排序C/C++ codeint find(int *a,int low,int high){int xa[low]while(lowhigh){while(lowhigh &&

快速排序

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 方法咋没有返回呢

热点排行