快速排序中的一个问题
在快速排序一开始,我们需要判断left>right,如果成立就退出程序,为啥需要这一步呢,倘若排序中真的出现left>right情况,怎么办,我应该哪卡住了,望能解惑
void quicksort(int left,int right)
{
int i,j,t,temp;
if(left>right)
return;
temp=a[left]; //temp中存的就是基准数
i=left;
j=right;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
left和right两车“相向而行”,当left>right时,表示两车已“相遇”,就不用再继续开了。
这点代码逻辑还不完整,所以我的回答可能有些不准确。简答理解:
left
,right
分别表示数组的左右两端,在一趟快速排序中,left,right会向中间移动,当left>right
时表示这一趟排序完成。