返回信息流void quickSort(int *head, int *tail)
{
if(head >= tail)return;
int pivot = *(head + (tail-head)/2);
int* left,*right;
left = head;
right = tail;
while(left<right)
{
//if(left==tail||right==head)return;
while((left<tail)&&(*left < pivot))
{
left++;
}
while((right>head)&&(*right > pivot))
{
right--;
}
if(left<right)
{
swap(*left,*right);
}
}
quickSort(head,right-1);
quickSort(left+1,tail);
}
用随机数生成的数组 10个 100个都可以 可是1000个就过不去了(好像是进死循环了)
这是一条镜像帖。来源:北邮人论坛 / cpp / #43060同步于 2010/8/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
帮忙看看下面的程序有何问题
xmilier
2010/8/31镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
把while((left<tail)&&(*left < pivot)) 中的tail改为right,while((right>head)&&(*right > pivot)) 中的head改成left试试