读书人

归并排序

发布时间: 2012-03-09 16:54:57 作者: rapoo

归并排序求救
谢谢啦 可否帮写一个归并排序的算法merge(data,start,mid,k-1)把data中的start,mid 和mid+1,k-1两个有序序列合并为一个有序序列放在data中。用C语言。谢谢啦


[解决办法]
start,mid 和mid+1,k-1两个有序序列

怎么理解 - -b
[解决办法]

C/C++ code
#define MAX 20void Merge(int a[], int low, int mid, int high) {    int L = low;    int H = mid+1;    int i = low;    int b[MAX];    int j;    while(L<=mid && H<=high)    {        b[i++] = (a[L]<=a[H]) ? a[L++] : a[H++];    }    if(L>mid)    {        for(j = H; j<=high; j++)            b[i++] = a[j];    }    else    {        for(j = L; j<=mid; j++)            b[i++] = a[j];    }    for(j = low; j<=high; j++)        a[j] = b[j]; } void MergeSort(int A[], int Low, int High) {    int Mid;    if(Low<High)    {         Mid = (Low+High)/2;         MergeSort(A,Low,Mid);         MergeSort(A,Mid+1,High);         Merge(A,Low,Mid,High);    } }int main(){    int i;    int s[5] = {4,5,2,3,6};    MergeSort(s,0,4);    for (i = 0; i < 5; i++)        printf("%d ",s[i]);            system("PAUSE");    return 0;} 

读书人网 >C语言

热点推荐