合并排序有掉期吗?

问题描述 投票:0回答:1

标题说明了一切。因此,我对合并排序的理解是,我们遍历两个列表并将项目插入第三个列表。通过确保比较前两个列表之间的项目,可以将列表以有序形式合并到第三个列表中。但是,我看不到任何交换发生。我只看到比较,然后简单地写数据。从技术上讲,mergesort没有交换吗?

sorting mergesort
1个回答
0
投票

排序答案是合并排序没有交换,或者更好的说法是它不需要交换。我们可以创建一个临时数组,该数组将作为按顺序合并的数组的长度之和返回。当合并排序将它们分解为单重态时,我们可以看到这一点。当您处于单重态级别时,必须通过更长的数组来传递,因此我们不交换任何内容。另外,在单重态方面,我们只需要进行一次比较,然后生成一个长度为2的数组并将它们按顺序放置。当此数组与另一个数组相遇时,我们获得两个数组的长度以构建其和的数组,然后向下走两个数组进行比较以将它们按顺序放入新数组中。再次,我们看到不需要新的交换操作即可执行此操作,并且由于递归的原因,该过程将遵循相同的过程,直到我们拥有一个完整的排序数组为止。由于单重态和合并2个数组的一般情况不需要交换,而只需要比较,因此整个算法不需要交换就可以对数组进行排序。因此,总之,技术上合并排序没有交换。

希望此帮助-杰森

© www.soinside.com 2019 - 2024. All rights reserved.