我试图理解合并排序递归堆栈实际上如何将两个数组合并为一个排序数组。
代码和输出位于 - https://gist.github.com/antani/144a2dfc85d89ae86297(以防止问题混乱)
我无法可视化此算法的堆栈跟踪
答案 0 :(得分:0)
嗯,如果将合并它们,则对left
和right
数组进行排序。然后算法将第一个left
- 值与最小right
- 值进行比较。两者的较小值是结果数组的下一个值。
在此部分之后,结果数组也会被排序,并将返回到递归深度/步骤/迭代n -1
...
也许这种动画工作排序算法会让你明白:http://www.sorting-algorithms.com