我需要一个关于合并排序算法的插图吗? (请逐步递归调用)

时间:2015-11-14 12:30:11

标签: algorithm sorting recursion

我坚持使用合并排序中使用的递归,我无法理解,我试过但我只是无法理解计算机将如何执行此算法。

例如,该算法如何对选择进行排序< 5,2,4,7,1,2,3,6> 。

我知道算法如何合并两个列表,但我需要查看递归调用的堆栈。我知道有很多关于这个主题的问题,但我需要理解算法的递归部分。我太糊涂了。

1 个答案:

答案 0 :(得分:1)

自上而下合并排序首先是深度优先。使用|表示使用youtube视频序列

分割数组
|4 2 8 6 0 5 1 7 3 9|
|4 2 8 6 0|5 1 7 3 9|
|4 2|8 6 0|
|4|2|
|2 4|
    |8|6 0|
      |6|0|
      |0 6|
    |0 6 8|
|0 2 4 6 8|
          |5 1|7 3 9|
          |5|1|
          |1 5|
              |7|3 9|
                |3|9|
                |3 9|
              |3 7 9|
          |1 3 5 7 9|
|0 1 2 3 4 5 6 7 8 9|

与自下而上合并排序比较:

|4 2 8 6 0 5 1 7 3 9|
|4|2|8|6|0|5|1|7|3|9|
|2 4|6 8|0 5|1 7|3 9|
|2 4 6 8|0 1 5 7|3 9|
|0 1 2 4 5 6 7 8|3 9|
|0 1 2 3 4 5 6 7 8 9|