在快速排序一开始,我们需要判断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;
在快速排序一开始,我们需要判断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;
这点代码逻辑还不完整,所以我的回答可能有些不准确。简答理解:left
,right
分别表示数组的左右两端,在一趟快速排序中,left,right会向中间移动,当left>right
时表示这一趟排序完成。
1 回答3.1k 阅读✓ 已解决
1 回答2.6k 阅读
1 回答2.1k 阅读
2.5k 阅读
1 回答1.1k 阅读
1 回答395 阅读✓ 已解决
815 阅读
left和right两车“相向而行”,当left>right时,表示两车已“相遇”,就不用再继续开了。