TZOJ5697: 数据结构实验:归并排序

#include<stdio.h>
#include<stdlib.h>
void  merge(int a[], int start,int mid,int end)
{
    int *b=(int*)malloc(sizeof(int)*(end-start+1));
    int i=start,j=mid+1,k=0;
    while(i<=mid&&j<=end)
    {
        if(a[i]<a[j])
        b[k++]=a[i++];
        else
        b[k++]=a[j++];
    }
    while(i<=mid)
    b[k++]=a[i++];
    while(j<=end)
    b[k++]=a[j++];
    for(i=0;i<k;i++)
    {
        a[start+i]=b[i];
    }
}

猜你喜欢

转载自www.cnblogs.com/zzjam--1/p/11421300.html