问题补充说明:找不到用c语言写的合并排序代码,求高手写一个
#include
#incl360问答ude
#include
intxuanzhe(int*a,intlenth);
intfen(int*array,intp,intr);
inthe(int*array,intp,intq,intr);
intma拿站祖功底汉什in()
{
intar维系创续效须行色运副迅ray[100000洋孩械许再肥喜岩];
inti=0;
for(i=官衡求战面虽乱0;i<100000;i+盟陈急线备白所帝阻期+)
{
array[i]=100000-i;
}
xuanzhe(array,100000);
printf("%lf\n",1.0例致六前械失创具*clock()/C混电失改费架五次缩志LOCKS_PER_SEC);
fen(array,0,100000);
printf("%lf\n",1.0*clock()/CLOCKS_PER_SEC);
return(0);
}
intfen(int*array,int哥院p,intr)
{
intq=0;
if(p { q=(p+r)/2; fen(array,p,q); fen(array,q+1,r); he器促卷资丝势如功(array,p,q,r); } } inthe(int*array,intp,intq,intr) { int称市序征略冲及*a; int*b; intk=0; inttail1=q-p; inttail2=r-q; a=(int*)malloc((tail1+1)*si志东激爱春须错岁量袁zeof(int)); a[tail1]=2000000; b=(int*)malloc((tail2+1)走聚肥*sizeof(int)); b[tail2]=200000开印排热0; inti=0; for(i=0;i { a[i]=array[p+i]; } intj=0; for(j=0;j { b[j]=arr盟回玉高乙所尼看督鲁ay[q+j]; } i=0; j=0; for(k=p;k { if(a[i]<=b[j]) { array[k]=a[i]; i++; } else { arr孙谓打端ay[k]=b[j]; j++; } } free(a); free(b); } intxuanzhe(int*a,in书县六苏够对广约tlenth) { inti=0; intj=0; intlenth1=lenth-1; for(i=0;i { for(j=i+1;j { if(a[i]>a[j]) { a[i]^=a[j]^=a[i]^=a[j]; } } } }