本博客以排升序为例介绍归并排序!
目录
我们先看一个问题:有两组均为升序的数组要合并到一组数组当中,要求合并后的数组也是升序的,怎么办?
办法:从头开始遍历两组数组,找“小”尾插到合并数组当中。举例如图:
这其实是归并的思想!
归并排序的基本思想:
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有 序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
动图展示归并排序:
1.归并排序的递归写法
利用递归不断将需排序数组分解成左右子数组,直到左右子数组元素个数为1停止。再利用归并思想合并子数组到额外空间上,将合并好的子数组从额外空间拷贝回需排序数组相应位置。