本文主要是介绍快速排序在排标兵时,为什么需要从基数的对面开始?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天周末,复习了一下快速排序的实现。我在手写实现的过程中,基数取的是低指针的值,但是我在开始排标签时,先从左边的开始排,导致结果错了。
我就很纳闷,为什么不可以从相同的方向开始排,一定要从基数的对面开始?
于是乎我看了一下排序的过程,发现确实会发生数据错乱。
我上网查了一下,绝大多数的回答都是同一篇,那篇回答也只是帮忙捋了一下排序的过程,然后证明不行。但是我感觉没有说到点上。
我自己思索了很久,发现如果当排基数时,如果从相同方向开始,当第一个方向排完之后,排第一个方向时,基数的位置与要排的方向是相反的。
如图:
大概就是这样
这篇关于快速排序在排标兵时,为什么需要从基数的对面开始?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!