归并排序理论---不含源码

|   版权声明:本文为博主原创文章,未经博主允许不得转载。

  归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。因为采用的是分治法,因此归并排序的两个最重要的步骤是拆分合并

  复杂度:时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。空间复杂度为 O(n);

  原理:假如将一个长为n初始序列,看成一个有n个有序的子序列,其中每个字序列的长度为1,然后在两两归并,就可以组成长为2的一组序列,这就是归并的第一趟排序,然后在将长为2的一组与另一组亮亮比较,就形成了第二趟排序,直到组成长为n的一组序列的时候,排序结束。

  我的语言表达能力不是很强,表达不是很清楚,下面通过实例演示归并排序的详细过程,如下所示:

  将设初始关键字序列为:50, 35, 56, 97, 76, 15, 30

  第一步:我们将上述长为7的序列的每一个元素看成一组,就有了如下的一组序列:

    

  第二步:将这一组序列两两归并比较,进行排序,如下:

     

  第三步: 以第一趟的结果,再次以一组为单位,两组一一比较,进行排序,如下图:

     

  第四步:参照上面的步骤,依次的归并,直到整个序列归并为一组的时候结束。

原文地址:https://www.cnblogs.com/geore/p/5892459.html