归并排序如何实现,谁能帮我给一个归并排序的例子
归并排序如何实现,谁能帮我给一个归并排序的例子
[解决办法]
void merg_sort(int nums[],unsigned int p,unsigned int r){ if(p<r) { int q=(p+r)/2; merg_sort(nums,p,q); merg_sort(nums,q+1,r); merg(nums,p,q,r); }}static int count=0;void merg(int nums[],unsigned int p,unsigned int q,unsigned int r){ int i,j,k; int n1=q-p+1; int n2=r-q; int *L,*R; L=(int *)malloc((n1+1)*sizeof(int)); R=(int *)malloc((n2+1)*sizeof(int)); for(i=0;i<n1;i++) { L[i]=nums[p+i]; } for(i=0;i<n2;i++) { R[i]=nums[q+i+1]; } L[n1]=65535; R[n2]=65535; i=0; j=0; for(k=p;k<=r;k++) { if(L[i]<=R[j]) nums[k]=L[i++]; else nums[k]=R[j++]; } free(L); free(R);}
[解决办法]
我排序看了很多这个博客,感觉博主写得还不错
归并:http://blog.csdn.net/touch_2011/article/details/6785881
[解决办法]
收藏了~~