实现两个有序数组的归并,仅仅提供一种思想,提高效率。
从后向前遍历。这样只需要一趟遍历即可完成排序。
void main()
{
int a[10]={1,3 ,5, 9 ,12};
int b[]={2,4, 6, 15,17};
int lengA=sizeof(a)/sizeof(int)-1;
int lengB=sizeof(b)/sizeof(int)-1;
int tmpA=4;
while(lengA >= 0 && lengB >= 0)
{
if(a[tmpA]>b[lengB])
{
a[lengA--]=a[tmpA--];
}
else
{
a[lengA--]=b[lengB--];
}
}
for(int i=0; i<10;i++)
cout<<a[i]<<endl;
system("pause");
}