int merge(int af[],int lena,int bf[],int lenb) //有序合并
{
int i=1,j=1,k=1;
int* c = new int[lena+lenb];
do //检索a[i]b[j]中较小的,赋给c[k]
{
while((af[i]>=bf[j])&&(j<=lenb)) { c[k]=bf[j]; j++; k++; }
while((af[i]<bf[j])&&(i<=lena)) { c[k]=af[i]; i++; k++; }
}while((i<=lena)&&(j<=lenb));
//当完成a或b任一个的检索后,将另一个全赋于c
for(;j<=lenb;j++) { c[k]=bf[j]; k++; }
for(;i<=lena;i++) { c[k]=af[i]; k++; }
return c; //返回c的长度
}