β

归并排序,比较好理解的一种排序

混沌的云 100 阅读

所谓的归并排序,就是递归“把数组从中间分开,分成两段,然后分别排序,最后合并”这个过程。

比较好理解,所以很快敲出了代码。

比快排好理解。。。个人感觉。。。

#include
#include
typedef int mytype;
void add(mytype *a,int l1,int h1,int l2,int h2)
{
    mytype *t;
    int i,j,k;
    i=l1;
    j=l2;
    k=0;
    t=(mytype*)malloc((h2-l1+1)*sizeof(mytype));
    //申请空间存放中间数据
    while(i<=h1&&j<=h2)
    {
        if(a[i]<=h1)
    {
        t[k++]=a[i++];
    }
    while(j<=h2)
        t[k++]=a[j++];//多余的数
    for(i=l1,j=0;i<=h2;i++,j++)
    {
        a[i]=t[j];//复制中间数据回去
    }
    free(t);
    return ;
}
void MergeSort(mytype *a,int low,int high)
{
    int mid=(low+high)/2;
    if(low
作者:混沌的云
原文地址:归并排序,比较好理解的一种排序, 感谢原作者分享。

发表评论