归并

#include<stdio.h>
void merge(const int array_a[],const int array_b[],int Temp_array[],int size_a,int size_b);
void merge(const int array_a[],const int array_b[],int Temp_array[],int size_a,int size_b)
{
	int tempPos=0,Lpos=0,Rpos=0;
	while((Lpos!=size_a)&&(Rpos!=size_b))
	{
		if(array_a[Lpos]<=array_b[Rpos])
			Temp_array[tempPos++]=array_a[Lpos++];
		else
			Temp_array[tempPos++]=array_b[Rpos++];
	}
	while(Lpos!=size_a)
		Temp_array[tempPos++]=array_a[Lpos++];
	while(Rpos!=size_b)
		Temp_array[tempPos++]=array_b[Rpos++];
}
int main()
{
	const int array_a[]={1,3,5,7,9};
	const int array_b[]={2,4,6,8,10};	
	const int size_a=sizeof(array_a)/sizeof(array_a[0]);
	const int size_b=sizeof(array_b)/sizeof(array_b[0]);
	int temp_array[size_a+size_b];
	merge(array_a,array_b,temp_array,size_a,size_b);
	for(int i=0;i<10;i++)
		printf("%d\n",temp_array[i]);
	return 0;
}

 

posted @ 2011-11-09 16:14  shiney  阅读(207)  评论(0编辑  收藏  举报