合并子数组的 mergeSort 背后的逻辑是什么?

问题描述

我一直在寻找堆栈逻辑形式的合并排序的可视化表示。由于我们递归地调用函数,因此我无法确定如何进一步合并已排序的子数组。据我了解,我们首先将问题分解为子问题。我们通过调用 MergeSort 算法来做到这一点,该算法通过使用分割子数组的开始和结束索引调用自身来递归工作。然后我们调用对数组元素进行排序的 Merge 函数。然而我无法理解的是,在进行递归调用之后,我们来到了对元素进行排序的地步。在这部分中,我们创建了 2 个数组,其大小与我们从函数发送的参数大小相同,该函数用于将数组分成小块。

那么,在对最小数组进行排序之后,我们如何将新排序的数组与我们已经排序的数组结合起来?

如果我的问题有问题,我真的很抱歉。由于我对这部分感到困惑和迷失,所以我有很多问题。因此,我可能不清楚。

解决方法

这里是归并排序的可视化表示,请大家看一看,你就会清楚地了解归并排序的逻辑。链接:https://www.hackerearth.com/practice/algorithms/sorting/merge-sort/visualize/