关于单路快速排序递归终止条件的疑问

来源:3-5 快速排序法 - Quick Sort

厥~~~

2019-05-18

老师快速排序递归终止的条件为啥是l>=r,l=r我能理解就是只有一个元素,可以认为自己本身就是有序的就直接return,但是l>r这种情况怎么会出现呢?虽然我验证后知道递归终止条件就是l>r,但是不是明白什么情况下会出现l>r这种情况。

写回答

1回答

liuyubobobo

2019-05-18

在这三句话中:

int p = __partition(arr, l, r);    
__quickSort(arr, l, p-1 );    
__quickSort(arr, p+1, r);


比如l = 2, r = 3, partition计算出来的p = 2,则:

__quickSort(arr,2, 2-1 );    // 出现l > r
__quickSort(arr, 2+1, 3);


继续加油:)

1
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程