‘壹’ 王道数据结构里面的一道题,逆置算法,划圈的那点mid–left不是很懂,为什么要减去left觉得直
因为你的这个程序是递归的,会分为两边。
如果在最左边。那么left是0没有问题,
但是在右边,实际上你的个数只有mid-left。而不是mid个。
那么程序必然要写成
i<=mid-left
//因为mid指的是某个区间的中间那个数,但是这个区间实际的元素个数应该为
//(mid-left)*2
//而根据算法能够明白我们需要处理的是当前区间的前半段
//那么自然是从i=0-->i<=mid-left
你仔细想想,看看能不能明白。
我随便画了个草图。