归并排序求救
谢谢啦 可否帮写一个归并排序的算法merge(data,start,mid,k-1)把data中的start,mid 和mid+1,k-1两个有序序列合并为一个有序序列放在data中。用C语言。谢谢啦
[解决办法]
start,mid 和mid+1,k-1两个有序序列
怎么理解 - -b
[解决办法]
#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;}