复仇归并排序

 

归并排序就是,把一群数据一直分,一直分,分到不能再分之后,一个个按顺序把你们装进去

 

讲讲第一个难点,上面两个mergesort归并,其实这是一个把人给分开,分成两组,接着再分,再分。。。分到没办法分的时候,往下走。。。然后接着就是定义指针i j k,然后就有一个困扰了我很久的问题,为什么可以在递归中,很顺利地把a[i],a[j],放到arr数组里头,递归递归,本质上就是一个方法的重复使用,那么,它给这个数组赋值的过程,就是在递归里面一直重复的,比如递归中一直赋值进去left 和mid这样子的边界,但其实,边界是越缩越小的,而且在不同递归时期,left这些边界也会变化,比如我递归到很后面,你赋值进去的left right可能就(1,2),然后我是(3,4),然后两个小小的数组就有了,接着就return回去就是(1,4)(5,8),这样子边界越来越大进行有序数组的合并,接着再把排号的return出来就行了

posted @ 2023-10-30 23:43  糖子哥  阅读(8)  评论(0编辑  收藏  举报