老师您好,我使用Java实现随记快速排序时,针对代码的debug执行逻辑有一点疑问,具体如下(可能写的有点多,怕老师不理解我的意思。。)
初始:l = 0,r = 7,数组:Integer[] arr = {5, 1, 9, 4, 2, 8, 6, 7}
第一次递归:l = 0,mid = 3

第二次递归:l = 0,mid = 1

第三次递归:l = 0,mid = 0

这时,进入下面第二个子递归函数,mid+1 = r (mid为0,r为1),此时退出递归过程进入到第一次merge(arr, 0,0,r),数组前两个元素merge完成,此时debug标记如下:

问题:前两个数组元素merge结束后,这时应该对角标为3和4元素进行merge,但是为什么debug会走到如下图所示呢?又为什么 mid = 1, r = 3呢?因为上一个图的mid = 0, r = 1,逻辑倒是明白,但是此处的两个递归执行有点晕,望老师有空时解答下,谢谢老师~
