algorithm - Quicksort:为什么将枢轴移到最后?

标签 algorithm computer-science quicksort

首先将选定的枢轴元素移动到数组末尾的动机是什么? 我唯一能看到的是,当递增较低的索引 i 时,我们不需要检查 i < n 而只需要检查 a[i] < pivot.

是吗?

他肯斯

安迪

最佳答案

枢轴被移动到数组的末尾,因为在移动其他元素之前它不知道它会在哪里结束。为了避免在每次比较后不断移动整个数组的元素,将主元放在末尾,直到对数组的其余部分进行排序(对于快速排序的那一步),然后将其放置在正确的位置。这意味着数组只需要移动两次(开始一次,结束一次),而不是在每次比较之后。

关于algorithm - Quicksort:为什么将枢轴移到最后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493763/

相关文章:

javascript - 三维数组上的 Dijkstra 算法

algorithm - 限制矩阵中位置的通用算法

c++ - 流行的 C++ 编译器对 std::sort 和 std::stable_sort 使用什么算法?

c - C 新手,编译时遇到一些问题

java - java快速排序前3个元素的中位数

C:使用 qsort 对二维数组进行逐行排序

python - OpenCV 找到彩色圆圈和位置值 Python

algorithm - 最快的素性测试

database-design - PintOS 等数据库系统的教育项目?

algorithm - 高效的节点流量分配