我坚持使用合并排序中使用的递归,我无法理解,我试过但我只是无法理解计算机将如何执行此算法。
例如,该算法如何对选择进行排序< 5,2,4,7,1,2,3,6> 。我知道算法如何合并两个列表,但我需要查看递归调用的堆栈。我知道有很多关于这个主题的问题,但我需要理解算法的递归部分。我太糊涂了。
答案 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|