排序:归并排序

目录

归并排序——有递归的:

基本思想:

思路分析: 

代码分析:  

划分区间思路:

代码思路分析: 

归并排序——有递归的:

基本思想:

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

将已有序的子序列合并,得到完全有序的序列;即先使 每个子序列内部 有序,再使每个子序列段 间 有序。若将两个有序表合并成一个有序表,称为二路归并。  

思路分析: 

而放到排序中,我们归并的前提是要左右区间有序,而对于一个无序的数组而言左右区间并不是有序的,而要将他变得有序,则可以采取递归的方法。

  • 那么,做法便成为了使用递归的方法,将序列区间连续的对半划分,直到不能划分位置,随后这些被划分的区间再进行排序组成一个有序的序列区间,随后再归并回去。
  • 而再这些被划分区间组成一个有序的序列区间其实也会用到归并的思想
  • 所以本质上就是大区间变成了小区间,数个小区间排列层有序的区间后和另一个相同等级的序列区间再度进行排序,直到变成有序的数组为止。 

代码分析:  

代码就是将大区间变小区间,然后小区间的元素进行尾插到新数组内排序,而后新数组的元素拷贝到原来的小区间内

然后小区间在和它同级的小区间进行相同的操作变成一个更大的有序的区间,然后再和其他更大的区间进行相同的操作,最后的最后变成一个有序的数组并拷贝回原来的数组空间 

划分区间思路:

代码思路分析: 


 

  • 54
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值