今天周末,复习了一下快速排序的实现。我在手写实现的过程中,基数取的是低指针的值,但是我在开始排标签时,先从左边的开始排,导致结果错了。
我就很纳闷,为什么不可以从相同的方向开始排,一定要从基数的对面开始?
于是乎我看了一下排序的过程,发现确实会发生数据错乱。
我上网查了一下,绝大多数的回答都是同一篇,那篇回答也只是帮忙捋了一下排序的过程,然后证明不行。但是我感觉没有说到点上。
我自己思索了很久,发现如果当排基数时,如果从相同方向开始,当第一个方向排完之后,排第一个方向时,基数的位置与要排的方向是相反的。
如图:
大概就是这样