algorithm - 为什么我们在合并排序中将数组划分为一个元素

标签 algorithm sorting merge

我正在阅读归并排序算法。我有一个问题

假设我们有一个列表

列表 = 5 4 1 3 6 8 9 7

首先将list分成4 -4个元素。我们称左右边列表

5 4 1 3 and 6 8 9 7

然后将5 4 1 3分成如下

5 4 and 1 3

然后把5和4分成

5 4

排序时,我们将从最后一步开始排序,直到第 1 步(我们有 4-4 个元素)

问题:无论如何,当我们将列表划分为 1-1 个元素并且我们随时对列表进行排序和合并时,为什么不将列表划分为仅 4-4 个元素。因为在这种情况下,我们也会对列表进行合并。为什么要迭代到1-1个元素

最佳答案

1 元素列表自然排序。 我们合并两个 1 元素排序列表得到 2 元素排序列表,然后合并 2 元素排序列表得到 4 元素排序列表等等。

合并过程适用于排序列表,因此我们不能将合并应用于未排序的 5 4 1 36 8 9 7 列表

关于algorithm - 为什么我们在合并排序中将数组划分为一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37543531/

相关文章:

java - 打印二叉树中从根到叶的所有路径

java - 如何在 Java 中按元素大小对 ArrayList 进行排序?

java - 在单独的类中访问私有(private)变量?

xcode - PBXBuildFile 与 PBXFileReference 部分

algorithm - 使用具有 N 个顶点的多边形来估计给定形状的算法是什么?

algorithm - 矩阵函数的离散优化

algorithm - 通知好友注册

java - 针对多个谓词扫描一次数组或针对单个谓词多次扫描数组是否更有效

Pandas 右合并不保留键顺序

python - 根据字段值linux合并行