首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

归并排序

2012-03-09 
归并排序求救谢谢啦 可否帮写一个归并排序的算法merge(data,start,mid,k-1)把data中的start,mid 和mid+1,k

归并排序求救
谢谢啦 可否帮写一个归并排序的算法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;} 

热点排行