using namespace std;
/*
1:合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素; 2016/07/06 song.yang
*/
void MergeArray(int a[],int alen,int b[],int blen)
{
int len=alen+blen-1;
alen--;
blen--;
while (alen>=0 && blen>=0)
{
if (a[alen]>b[blen])
{
a[len--]=a[alen--];
}else{
a[len--]=b[blen--];
}
}
while (alen>=0)
{
a[len--]=a[alen--];
}
while (blen>=0)
{
a[len--]=b[blen--];
}
}
int main()
{
int a[]={2,4,9,8,10,0,0,0,0,0};
int b[]={1,5,6,7,11};
MergeArray(a,5,b,5);
for (int i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
cout<<a[i]<<" ";
}
return 0;
}
//java版本
package algorithm;
/**
*
* Created by song.yang on 2016年7月6日
*
*/
public class MergeArr {
public void mergeArr(int a[],int b[]){
int alen = 5;
int blen = 5;
int len = alen + blen - 1 ;
alen--;
blen--;
while(alen>=0&&blen>=0){
if (a[alen]>b[blen])
{
a[len--]=a[alen--];
}else{
a[len--]=b[blen--];
}
}
while(alen>=0){
a[len--] = a[alen--];
}
while(blen>=0){
a[len--] = b[blen--];
}
}
public static void main(String[] argv){
int a[]={2,4,6,8,10,0,0,0,0,0};
int b[]={1,3,5,7,9};
MergeArr ma = new MergeArr();
ma.mergeArr(a, b);
for (int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}