`
waret
  • 浏览: 131808 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

合并两个有序数组

阅读更多

 

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的长度
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics