首先将选定的枢轴元素移动到数组末尾的动机是什么? 我唯一能看到的是,当递增较低的索引 i 时,我们不需要检查 i < n 而只需要检查 a[i] < pivot.
是吗?
他肯斯
安迪
最佳答案
枢轴被移动到数组的末尾,因为在移动其他元素之前它不知道它会在哪里结束。为了避免在每次比较后不断移动整个数组的元素,将主元放在末尾,直到对数组的其余部分进行排序(对于快速排序的那一步),然后将其放置在正确的位置。这意味着数组只需要移动两次(开始一次,结束一次),而不是在每次比较之后。
关于algorithm - Quicksort:为什么将枢轴移到最后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493763/