《c语言分治法实现合并排序源码.doc》由会员分享,可在线阅读,更多相关《c语言分治法实现合并排序源码.doc(2页珍藏版)》请在三一文库上搜索。
分治法实现合并排序#include#include#includevoidmerge(inta,intp,intq,intr)inti,j,k;int*tmp=(int*)malloc(r-p+1)*sizeof(int);i=p;j=q+1;k=0;while(i=q&j=r)if(aiaj)tmpk=ai+;elsetmpk=aj+;k+;while(i=q)tmpk+=ai+;while(j=r)tmpk+=aj+;for(i=0;ik;i+)ap+i=tmpi;free(tmp);voidmerge_sort(inta,intp,intr)if(pr)intq=(p+r)/2;merge_sort(a,p,q);merge_sort(a,q+1,r);merge(a,p,q,r);voidmain()intA10=56,22,40,78, 31,13,92,56,26,20;merge_sort(A,0,9);for(inti=0;i10;i+)printf(%d,Ai);printf(nn);